首页 > 代码库 > 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