标签:
需要JAR包:dom4j-1.6.1.jar
import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Iterator; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.SAXReader; import org.dom4j.io.XMLWriter; import org.dom4j.tree.BaseElement; public class Dom4jXml { // 创建XML文档 public static void createDocument() { try { // 创建文档 Document doc = DocumentHelper.createDocument(); // 添加根元素 Element root = doc.addElement("UserInfo"); // 添加注释 root.addComment("An XML UserInfo"); // 创建子元素 Element user = new BaseElement("User"); // 添加子元素并设置文本内容 user.addElement("name").setText("张三"); user.addElement("age").setText("20"); // 添加子元素到根元素 root.add(user); // 创建子元素 Element user2 = new BaseElement("User"); // 添加属性 user2.addAttribute("name", "李四"); user2.addAttribute("age", "25"); // 添加子元素到根元素 root.add(user2); // 设置缩减型格式 OutputFormat format = OutputFormat.createPrettyPrint(); // 设置紧凑型格式 // OutputFormat format = OutputFormat.createCompactFormat(); // 设置编码 format.setEncoding("UTF-8"); // 写入到文件 XMLWriter output = new XMLWriter(new FileWriter(new File( "C:\\Users\\Yangyuan\\Desktop\\test\\test.xml")), format); output.write(doc); output.close(); System.out.println("创建XML文档完成"); } catch (Exception e) { System.out.println(e); } } // 修改XML文档 @SuppressWarnings("unchecked") public static void updateDocument() { try { //获得DOC文档 File file = new File("C:\\Users\\Yangyuan\\Desktop\\test\\test.xml"); SAXReader reader = new SAXReader(); Document doc = reader.read(file); // 获得根节点 Element root = doc.getRootElement(); // 获得根节点下的所有子节点 Iterator it = root.elementIterator(); // 遍历子节点 while (it.hasNext()) { Element ele = (Element) it.next(); // 获得节点下面的所有子节点 Iterator users = ele.elementIterator(); // 遍历子节点 while (users.hasNext()) { Element usele = (Element) users.next(); // 判断节点名称是否为name if (usele.getName().equals("name")) { // 修改节点的文本值 usele.setText(usele.getText() + "_001"); } } // 获得节点的name属性 Attribute attribute = ele.attribute("name"); if (attribute != null) { // 修改属性值 attribute.setValue(attribute.getValue() + "_002"); } } // 写入到文件 OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("UTF-8"); XMLWriter writer = new XMLWriter(new FileWriter(file), format); writer.write(doc); writer.close(); System.out.println("修改XML文档完成"); } catch (DocumentException e) { System.out.println(e); } catch (IOException e) { System.out.println(e); } } public static void main(String[] args) { createDocument(); updateDocument(); } }
运行后XML内容如下:
标签:
原文地址:http://www.cnblogs.com/heheyy/p/4185889.html