首页 > 代码库 > DOM4J读写XML
DOM4J读写XML
需要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内容如下:
DOM4J读写XML
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。