java使用XPath选择节点范围
我们正在一个Java应用程序中使用XPath,我想知道:如果“终止点”是一个与其同级节点不属于同一类型的节点,如何选择一组节点
例如,我想从下面的例子中得到两组大小为3和2的<a>
标记:
<sample>
<a />
<a />
<a />
<terminating />
<a />
<a />
</sample>
你可以在下面搜索框中键入要查询的问题!
我们正在一个Java应用程序中使用XPath,我想知道:如果“终止点”是一个与其同级节点不属于同一类型的节点,如何选择一组节点
例如,我想从下面的例子中得到两组大小为3和2的<a>
标记:
<sample>
<a />
<a />
<a />
<terminating />
<a />
<a />
</sample>
# 1 楼答案
首先,XPath表达式的结果总是原子值或单个节点集(或XPath2.0中的序列)。无法获取节点集的列表
也就是说,对于只有两个组和一个终止符的特定示例,您可以只使用
preceding-sibling
和following-sibling
:# 2 楼答案
扩展Pavel Minaev的答案-我会写一个循环,如下(“
i
”是循环索引):的帮助下查找所有
<terminating>
节点 →/sample/terminating
→
./preceding-sibling::a[count(preceding-sibling::terminating) = {i}]
<terminating>
节点,还可以找到→
./following-sibling::a