java dom4j解析xml实例

java利用dom4j解析xml 需要的jar包: 
dom4j官方网站在 http://www.dom4j.org/ 
下载dom4j-1.6.1.zip 
解开后有两个包,仅操作XML文档的话把dom4j-1.6.1.jar加入工程就可以了,如果需要使用XPath的话还需要加入包jaxen-1.1-beta-7.jar(如果不导入这个架包程序可以执行出结果,但最后会报异常) 
将相关jar包引入后,实际解析操作如下: 

1.要解析的xml文件data.xml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?xml version="1.0" encoding="UTF-8"?>
<ReturnInfo>
<userlist>
<item index="1" level="60" nickname="凄惨的老生" country="金"
weiwang="136929" />
<item index="2" level="85" nickname="哭泣的至尊宝" country="金"
weiwang="97490" />
<item index="3" level="85" nickname="老公" country="金"
weiwang="91103" />
<item index="4" level="78" nickname="冉闵" country="金"
weiwang="82828" />
<item index="5" level="55" nickname="erggh" country="金"
weiwang="77440" />
<item index="6" level="60" nickname="孤峰" country="金"
weiwang="67821" />
<item index="7" level="60" nickname="乱世" country="金"
weiwang="67675" />
<item index="8" level="62" nickname="叛逆之神" country="金"
weiwang="61839" />
<item index="9" level="60" nickname="双乔主人" country="金"
weiwang="61647" />
<item index="10" level="60" nickname="视觉效果" country="金"
weiwang="50200" />
<item index="11" level="60" nickname="鬼鬼" country="金"
weiwang="49537" />
<item index="12" level="59" nickname="狂龙在天" country="金"
weiwang="46687" />
<item index="13" level="60" nickname="小子" country="金"
weiwang="46152" />
<item index="14" level="52" nickname="zzy" country="金"
weiwang="39017" />
<item index="15" level="53" nickname="ycf" country="金"
weiwang="30333" />
<item index="16" level="52" nickname="无界之魂" country="金"
weiwang="20294" />
<item index="17" level="42" nickname="刀锋狼" country="金"
weiwang="18842" />
<item index="18" level="60" nickname="mnbvc" country="金"
weiwang="18102" />
<item index="19" level="41" nickname="赢政" country="金"
weiwang="16331" />
<item index="20" level="52" nickname="徐匡胤" country="金"
weiwang="16156" />
</userlist>
</ReturnInfo>

 

 

2、具体解析程序如下: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package demo4;
 
import java.io.File;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
 
public class TestJava {
    public static void main(String args[]) throws DocumentException {
        SAXReader reader = new SAXReader();
        Document document = reader.read(new File("D:/data.xml"));
        Element rootElm = document.getRootElement();
        Element root1Elm = rootElm.element("userlist");
        List nodes = root1Elm.elements("item");
        for (Iterator it = nodes.iterator(); it.hasNext();) {
            Element elm = (Element) it.next();
            System.out.println("index:" + elm.attributeValue("index")
                    + " level:" + elm.attributeValue("level") + " nickname:"
                    + elm.attributeValue("nickname") + " country:"
                    + elm.attributeValue("country") + " weiwang:"
                    + elm.attributeValue("weiwang"));
        }
        try {
            Document doc = reader.read(new File("D:/data.xml"));
            List projects = doc.selectNodes("ReturnInfo/userlist/item");
            Iterator it = projects.iterator();
            while (it.hasNext()) {
                Element elm = (Element) it.next();
                System.out.println("index:" + elm.attributeValue("index")
                        + " level:" + elm.attributeValue("level")
                        + " nickname:" + elm.attributeValue("nickname")
                        + " country:" + elm.attributeValue("country")
                        + " weiwang:" + elm.attributeValue("weiwang"));
            }
 
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
 
}

 

3、运行结果如下图所示:

<1>、jaxen-1.1-beta-7.jar架包导入后不报异常,正常得到结果:

 

<2>、jaxen-1.1-beta-7.jar架包不导入后报异常,但也能得到结果:

 

posted @   岁月淡忘了谁  阅读(377)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示