xml解析--dom4j

在工作中有时候会用到dom4j对xml文件或者字符串进行解析, 以下内容为随手笔记, 防止以后遗忘.

1. 相关依赖
    <!-- dom4j -->
    <dependency>
        <groupId>dom4j</groupId>
        <artifactId>dom4j</artifactId>
        <version>1.6.1</version>
    </dependency>
2. 获取dom对象

获取dom对象方式主要以下几种:

    // 读取 xml 文件 方式
    SAXReader reader = new SAXReader();
    Document doc1 = reader.read(new File("src/main/java/com/liuzhihang/tool/xml/alipay.xml"));

    // 解析 xml 文本 方式
    String aliPayStr = XmlTest.getAliPayStr();
    Document doc2 = DocumentHelper.parseText(aliPayStr);

    // 主动创建
    Document doc3 = DocumentHelper.createDocument();
    Element element = doc3.addElement("Test");
3. 操作dom对象

当获取到dom对象后便可以通过以下方式对dom进行操作

    // 获取根节点
    Element rootElement = dom.getRootElement();
    // System.out.println(rootElement.getName());

    // 获取子节点
    Element element = rootElement.element("response").element("alipay");
    // System.out.println(element.asXML());

    // 获取节点的文字
    String text = element.element("alipay_buyer_login_id").getText();
    // System.out.println(text);

    // 获取节点下的所有节点 快捷键 iter / itco
    List elements = element.elements();
    // for (Object o : elements) {
    //     Element tempElement = (Element) o;
    //     System.out.println(tempElement.getName() + "\t" + tempElement.getText());
    // }
    // for (Iterator iterator = elements.iterator(); iterator.hasNext(); ) {
    //     Element next =  (Element)iterator.next();
    //     System.out.println(next.getName() + "\t" + next.getText());
    // }

    // 获取节点下所有节点 Iterator对象 快捷键 itit
    Iterator iterator = element.elementIterator();
    // while (iterator.hasNext()) {
    //     Element next =  (Element)iterator.next();
    //     System.out.println(next.getName() + "\t" + next.getText());
    // }

    // 添加节点
    Element testElement = element.addElement("testElement");
    // 指定添加文字
    testElement.setText("测试添加文字");
    System.out.println(element.asXML());
    // 删除节点
    boolean remove = element.remove(testElement);
    System.out.println(remove + "\n" + element.asXML());

4. 详细代码

Dom4jTest.java


   版权声明

文章作者: liuzhihang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源!

评论
  目录