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

时间:2016-02-08 15:11:09

标签: 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指向A,我希望得到“A”。

1 个答案:

答案 0 :(得分:3)

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

./*[@head='X']

从当前节点开始。

当前节点为S时,它会选择A;当前节点为A时,它会根据请求选择A2