日期:2014-05-20  浏览次数:20559 次

java dom 查找指定节点
<?xml version="1.0" encoding="UTF-8"?>
<data>
<group name="2">
<people>
<name>kent</name>
<phone>4545454</phone>
<cellphone>45454</cellphone>
<email>4545454</email>
<qq>让他让他让他</qq>
<address>瑞特让他</address>
<unit>瑞特让他</unit>
<position>杨月恒</position>
<hobby>让让她</hobby>
</people>
</group>
</data>
以上是xml文件
root是data
我要找的name属性是2的group然后再找到name是kent的people,然后再取出找到的people节点的所有子节点的值。
怎么做啊,跪求高手指点!!!!!

------解决方案--------------------
你这个问题,本质上问的是XPath表达式如何写的问题。
"//group[@name=2]/people[name='kent']"

具体请Google查阅XPath语法等参考文献。

程序片段:
Java code

SAXReader reader = new SAXReader();
Document doc = reader.read(ClassLoader.getSystemResourceAsStream("test.xml"));        
Node node = doc.selectSingleNode("//group[@name=2]/people[name='kent']");        
System.out.println(node.asXML());