XPath:如何通过属性值在所有后代节点层次结构中进行搜索?

时间:2013-06-11 11:51:22

标签: xml xpath

考虑遵循XML:

<parent no=1>
   <child id=10>
      <child id=101>
      </child>
      <child id=102>
         <child id=10201>
            I want this line.
         </child>
      </child>
   </child>
</parent>
<parent no=2>
   ...
</parent>

我想获取id = 10201的元素child的值,该值在parent no = 1下,而不是通过指定所有路径。我的意思是我不希望以这种方式获得节点:

parent[@no=1]/child[@id=10]/child[@id=102]/child[@id=10201]

相反,因为我有每个孩子的ID我应该能够直接通过一个条件获取节点,如下所示:

parent[@no=1]/*/child[@id=10201]

我该怎么做?

1 个答案:

答案 0 :(得分:1)

一种方法

//child[@id = 10201 and ancestor::parent[@no = 1]]

和另一个,就像你想的那样

//parent[@no = 1]//child[@id = 10201]