我想为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获得所有第二个孩子,因为我也需要它。
答案 0 :(得分:1)
你说你尝试过的XPath,
//B/C[1]
正是您要选择C
元素的所有首要B
元素的原因:
<C>want this</C>
<C>want this, too</C>
没有任何其他C
元素。
如果您没有看到上面显示的两个C
元素,那么在您看到它之前,某些内容只会过滤到第一个结果。也许你正在传递给另一个自动获取节点集第一个节点的函数。