JAVA dom4j 如何解析读取xml文件

XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便。

XML解析在JAVA中有很多种方法,以下只是其中一个示例

<?xml version="1.0" encoding="utf-8"?>
<!--This is izpan.xml documents-->
<Info>
    <info>
        <name>一人夕</name>
        <time>2019-09-14 22:22:24</time>
    </info>
</Info>

JAVA 代码

package com.izpan.impl;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
 
public class Dom4jXMLTest {
        public static void main(String[] args) {
                Dom4jXMLTest dom = new Dom4jXMLTest();
                dom.readStringXml();
        }
         
        public static void readStringXml() {  
        try {  
            // 读取并解析XML文档  
            // SAXReader就是一个管道,用一个流的方式,把xml文件读出来  
            SAXReader reader = new SAXReader(); // User.hbm.xml表示你要解析的xml文档  
            Document doc = reader.read("S://izpan.xml");  
            Element rootElt = doc.getRootElement(); // 获取根节点  
            System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称  
            for (int i = 0; i < rootElt.nodeCount(); i++) {  
                Node node_izpan = rootElt.node(i);
                if (node_izpan instanceof Element) {  
                    Element elementTemp = (Element) node_izpan;
                    System.out.println("二级节点的名:" + node_izpan.getName()); // 拿到第一个二级节点的名称info
                    // 获取二级节点的下面的子节点forward(三级节点)  
                    for (Iterator iterroot2 = elementTemp.elementIterator(); iterroot2.hasNext();) {  
                        Element el_izpan = (Element) iterroot2.next(); // 得到一个二级节点  
                        System.out.println("info下的三级节点的名:" + el_izpan.getName());  
                        System.out.println("info下的三级节点的值:" + el_izpan.getText()); // 获取info的值  
                    }  
                }  
            }  
        } catch (DocumentException e) {  
            e.printStackTrace();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}

最终结果

根节点:Info
二级节点的名:info
info下的三级节点的名:name
info下的三级节点的值:一人夕
info下的三级节点的名:time
info下的三级节点的值:2019-09-14 22:22:24
后端开发

Android 8.0 以上获取设备序列号

2019-5-30 19:06:05

后端开发

SpringBoot 2 集成 Redis 缓存

2019-9-18 10:21:44

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索