永发信息网

如何使用dom4j解析多节点的xml文件呢?求助!如以下例子

答案:1  悬赏:70  手机版
解决时间 2021-02-21 21:15
2 测试 2 测试
最佳答案
按照你的xml格式。 将以上xml保存为 bb.xml
SAXReader sax = new SAXReader();
Document document= sax.read("bb.xml");
Element root = document.getRootElement();

for (Iterator iter = root.elementIterator(); iter.hasNext();) {
Element vals = (Element) iter.next();
System.out.println("name=" + vals.getName()
+ " \t attribut ID=" + vals.attributeValue("id"));
for (Iterator iterVal = vals.elementIterator(); iterVal
.hasNext();) {
Element valNode = (Element) iterVal.next();
System.out.print("\t childName=" + valNode.getName()
+ "\t childValue=" + valNode.getText());
System.out.println();
}
}

如果你把xml格式换下,保存文件 b.xml:
<RESULT>
<VALUE id="13" type="1">
<NO>2</NO>
<ADDR>测试</ADDR>
</VALUE>
<VALUE id="13" type="2">
<NO>2</NO>
<ADDR>测试</ADDR>
</VALUE>
</RESULT>

解析如下:
document = sax.read("b.xml");
root = document.getRootElement();
List ls = root.selectNodes("/RESULT/VALUE");

for (int i = 0; i < ls.size(); i++) {
Element val = (Element) ls.get(i);
Element no = val.element("NO");
Element addr = val.element("ADDR");
System.out.println("id=" + val.attributeValue("id") + "\t type="
+ val.attributeValue("type") + "\t no=" + no.getText()
+ "\t addr=" + addr.getText());
}
建议你将xml更换下,结构清晰,解析简单
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
英短猫屁股红红的怎么回事
加龙饭店在什么地方啊,我要过去处理事情
yy棒子直播间礼物走曲
公司有个贱人,总爱在背后搞小动作,我要怎么
2012武汉市汉阳区中考弘桥中学高中生录取名单
南阳宏鑫工程建设监理有限公司在哪里啊,我有
乳山市正方制冷工程服务中心在哪里啊,我有事
-3的正负号是什么
OPPO R11手机咋样?
按弹性理论,四边支承板在满足下列()项条件时
皮肤粗糙有什么办法可以改善?
从四川绵阳到河南郑州坐火车要多长时间
潜水艇鱼不好好吃
中国移动通信亳州市双沟营业厅怎么去啊,有知
关于歌姬佩
推荐资讯
158平米的新房契税怎么算
【四个现代化是什么时候提出的】“四个现代化
请问,六区进不去了???,认证,认证 一直认
斯博克篮球培训中心(新中西街店)地址有知道的
夏天12小时母乳在母体不喝会坏吗还能喝吗
女宝宝三岁多,头上有头皮屑怎么办
旭日东升十字绣挂哪好
永发保管箱第一次怎么打开
亿万佳美电子电气有限公司在哪里啊,我有事要
有7天就可以瘦脸的方法吗?
炫舞繁星永驻什么样子
你发现分数和除法有什么关系
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?