帮忙看一下用dom4j读取XML属性值,?

zcsnet 2005-04-02 02:27:45
如何读出类似以下文件中的,<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>
...全文
553 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
itjourney 2005-04-05
  • 打赏
  • 举报
回复
另外,你的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>
itjourney 2005-04-05
  • 打赏
  • 举报
回复
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"));
}
zcsnet 2005-04-05
  • 打赏
  • 举报
回复
而且还有好多和<cloth>层并列的层,,Good层都是在最里面
zcsnet 2005-04-05
  • 打赏
  • 举报
回复
<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>

dlxu 2005-04-04
  • 打赏
  • 举报
回复
第一层是goods,第二层是Belt和Good啊

Good外面只有Goods一层,Belt层自己不是把自己关闭了么,对Good没有任何影响

要不就是你XML写错了。先把你XML语法检测一下
zcsnet 2005-04-04
  • 打赏
  • 举报
回复
good是第三层,,
dlxu 2005-04-03
  • 打赏
  • 举报
回复
你good不是第二层的么,我已经用document.getRootElement();取到了第一层,然后再一个Iterator取第2层啊
zcsnet 2005-04-03
  • 打赏
  • 举报
回复
UP
zcsnet 2005-04-03
  • 打赏
  • 举报
回复
楼上这个不行啊,,GOOD外面还有一层
dlxu 2005-04-03
  • 打赏
  • 举报
回复
假设文件名为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"));
}

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧