c# - 根据 XPath 中的属性值选择当前节点的子节点?

标签 c# xml xpath

我有像

这样的 XML
   ...
    <S head="X">
       <A head="X">
          <A1 head="Z">
          <A2 head="X">
       <B head="Y">
    </S>
   ...

我想选择 S 的子级,其属性值为“X”。 (注意,我对元素 SAB... 的名称一无所知)

我试过了

string headTag = node.SelectSingleNode("//*[@head='X']").Name;

它返回“S”,而如果node指向S,我希望得到“A”,如果node指向“A2”到A

最佳答案

此 XPath 将选择所有 @head 属性值等于 X 的子元素,无论其名称如何:

./*[@head='X']

从当前节点开始。

当前节点为S时,会选择A;当当前节点是A时,它会选择A2,全部按照要求。

关于c# - 根据 XPath 中的属性值选择当前节点的子节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35272875/

相关文章:

c# - MRZ Passport Parser C# 控制台应用程序

c# - 在 Windows Phone 8 中解析 XML

c - 使用 MiniXML 在 C 中解析 XML 文件

javascript - 无法使用 xpath、.select 或使用 Python 的 Selenium 单击 "next"按钮

xml - 使用 XPath 在命名空间中选择元素

c# - 将抽象转换为由 Derived 实现的接口(interface)

c# - 扩展方法找不到类型的定义

c# - linq to xml检查 key 是否存在?

java - False Activity 通过单击抽屉导航上的项目打开

java - WebDriver/PageObject/FindBy : how to specify xpath with dynamic value?