怎样用xPath获得XmlNode节点的第一级子节点

沉睡的老妖 2012-06-26 05:03:38
xml 格式如下:

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


可以看到 item有两个不同级的节点的name属性都是“李四”,怎么样通过xPath获得最下面的那个李四?求大神们指点
...全文
281 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
沉睡的老妖 2012-06-27
  • 打赏
  • 举报
回复
额~~我仔细看了下, 是我自己搞错了 我写的是//ACTION//ITEM[@Name='李四']"..你们懂的,这获得是所有的name=李四的子孙节点,嘿嘿 sorry 谢谢各位啦
dalmeeme 2012-06-27
  • 打赏
  • 举报
回复
@"/ACTION/ITEM[@Name='李四']"是正确的,按lz所说,那是@"/ACTION//ITEM[@Name='李四']",才会取到2个节点。
cnfixit 2012-06-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

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

你确定你试过了?
孟子E章 2012-06-27
  • 打赏
  • 举报
回复
doc.SelectSingleNode("/ACTION/ITEM[@Name='李四']")是正确的,
第一个节点的方法

doc.SelectSingleNode("/ACTION/ITEM/ITEM[@Name='李四']")
ly745455 2012-06-27
  • 打赏
  • 举报
回复
...奇怪的xml命名方式。。
换吧。。
沉睡的老妖 2012-06-27
  • 打赏
  • 举报
回复
这个方法我试过的,行不通的,由于Action节点的子节点跟孙节点都是ITEM,所以,根据这个xPath获得的是这两个节点,并非是最下面的那个节点,如果用SelectSingleNode方法,得到的是第一个李四
cnfixit 2012-06-26
  • 打赏
  • 举报
回复

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

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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