帮忙看一下用dom4j读取XML属性值,?
如何读出类似以下文件中的,<Good id='23001' name='长袍' >中的id值,,和name 值啊?
----------------------
<Goods>
<Belt/>
<Good id='23001' name='长袍' >
<Role>0</Role>
<Blood>0</Blood>
</Good>
<Good id='23002' name='藤甲' >
<Role>0</Role>
<Status>0</Status>
</Good>
<Good id='23003' name='魔法' >
<Role>0</Role>
<Blood>0</Blood>
<Qigong>0</Qigong>
</Good>
<Good id='23004' name='盔甲' >
<Role>0</Role>
<Blood>0</Blood>
</Good>
<Good id='23005' name='袍' >
</Goods>
问题点数:0、回复次数:10Top
1 楼zcsnet(大佬曾)回复于 2005-04-03 10:02:30 得分 0
UPTop
2 楼dlxu(脱离纯粹Coding阶段)回复于 2005-04-03 13:23:46 得分 0
假设文件名为c:/a.xml
SAXReader reader = new SAXReader();
File configFile = new File("C:/a.xml");
Document document = reader.read(configFile);
Element root = document.getRootElement();
for (Iterator i = root.elementIterator("Good"); i
.hasNext();) {
Element e= (Element) i.next();
System.out.println(e.attributeValue("id"));
System.out.println(e.attributeValue("name"));
}Top
3 楼zcsnet(大佬曾)回复于 2005-04-03 16:11:35 得分 0
楼上这个不行啊,,GOOD外面还有一层Top
4 楼dlxu(脱离纯粹Coding阶段)回复于 2005-04-03 22:47:01 得分 0
你good不是第二层的么,我已经用document.getRootElement();取到了第一层,然后再一个Iterator取第2层啊Top
5 楼zcsnet(大佬曾)回复于 2005-04-04 10:24:23 得分 0
good是第三层,,Top
6 楼dlxu(脱离纯粹Coding阶段)回复于 2005-04-04 10:26:46 得分 0
第一层是goods,第二层是Belt和Good啊
Good外面只有Goods一层,Belt层自己不是把自己关闭了么,对Good没有任何影响
要不就是你XML写错了。先把你XML语法检测一下Top
7 楼zcsnet(大佬曾)回复于 2005-04-05 09:45:52 得分 0
<Goods>
<Cloth>
<Good id='23001' name='长袍' >
<Role>0</Role>
<Blood>0</Blood>
</Good>
<Good id='23002' name='藤甲' >
<Role>0</Role>
<Status>0</Status>
</Good>
<Good id='23003' name='魔法' >
<Role>0</Role>
<Blood>0</Blood>
<Qigong>0</Qigong>
</Good>
<Good id='23004' name='盔甲' >
<Role>0</Role>
<Blood>0</Blood>
</Good>
<Good id='23005' name='袍' >
<Cloth/>
</Goods>
Top
8 楼zcsnet(大佬曾)回复于 2005-04-05 09:49:49 得分 0
而且还有好多和<cloth>层并列的层,,Good层都是在最里面
Top
9 楼itjourney(IT之旅)回复于 2005-04-05 10:33:41 得分 0
SAXReader reader = new SAXReader();
File configFile = new File("C:\\test.xml");
Document document = null;
try {
document = reader.read(configFile);
}
catch (Exception ex) {
ex.printStackTrace();
}
List list = document.selectNodes("//Goods/Cloth/Good");
Iterator iter = list.iterator();
while (iter.hasNext()) {
Element element=(Element)iter.next();
System.out.print("ID="+element.attributeValue("id"));
System.out.println(" Name="+element.attributeValue("name"));
}
Top
10 楼itjourney(IT之旅)回复于 2005-04-05 10:37:43 得分 0
另外,你的XML文件格式有错误,正确的应该如下:
<?xml version="1.0" encoding="gb2312"?>
<Goods>
<Cloth>
<Good id='23001' name='长袍' >
<Role>0</Role>
<Blood>0</Blood>
</Good>
<Good id='23002' name='藤甲' >
<Role>0</Role>
<Status>0</Status>
</Good>
<Good id='23003' name='魔法' >
<Role>0</Role>
<Blood>0</Blood>
<Qigong>0</Qigong>
</Good>
<Good id='23004' name='盔甲' >
<Role>0</Role>
<Blood>0</Blood>
</Good>
<Good id='23005' name='袍' />
</Cloth>
</Goods>Top




