日期:2014-05-18  浏览次数:21173 次

怎样用xPath获得XmlNode节点的第一级子节点
xml 格式如下:

XML code
<ACTION Name="学生">
        <ITEM Name="张三">
             <ITEM Name="李四" />
             <ITEM Name="王⑤" />
        </ITEM>
        <ITEM Name="李四"/>
</ACTION>



可以看到 item有两个不同级的节点的name属性都是“李四”,怎么样通过xPath获得最下面的那个李四?求大神们指点

------解决方案--------------------
C# code

@"/ACTION/ITEM[@Name='李四']"

------解决方案--------------------
doc.SelectSingleNode("/ACTION/ITEM[@Name='李四']")是正确的,
第一个节点的方法

doc.SelectSingleNode("/ACTION/ITEM/ITEM[@Name='李四']")
------解决方案--------------------
探讨

这个方法我试过的,行不通的,由于Action节点的子节点跟孙节点都是ITEM,所以,根据这个xPath获得的是这两个节点,并非是最下面的那个节点,如果用SelectSingleNode方法,得到的是第一个李四

------解决方案--------------------
@"/ACTION/ITEM[@Name='李四']"是正确的,按lz所说,那是@"/ACTION//ITEM[@Name='李四']",才会取到2个节点。