选择所有第一个孩子

时间:2017-02-13 19:44:23

标签: xml xpath

我想为B中的所有C选择以下示例XML:

<A>
  <B>
     <C>want this</C>
     <C>don't want this</C>
  </B>
  <B>
     <C>want this, too</C>
     <C>still don't want this</C>
  </B>
<C>definitely don't want this, or any other c</C>
</A>

这怎么可能?我试过了//B/C[1],但它只返回了第一个元素。在示例XML中,我在C之外放置了一个C,因为C是真正常见的元素,也可以存在于其他地方。

编辑:如果xpath可以以这样的方式扩展,我也可以从B获得所有第二个孩子,因为我也需要它。

1 个答案:

答案 0 :(得分:1)

你说你尝试过的XPath,

//B/C[1]

正是您要选择C元素的所有首要B元素的原因:

<C>want this</C>
<C>want this, too</C>

没有任何其他C元素。

如果您没有看到上面显示的两个C元素,那么在您看到它之前,某些内容只会过滤到第一个结果。也许你正在传递给另一个自动获取节点集第一个节点的函数。