我需要提取XPath 1.0中两个任意标记之间存在的所有节点。让我解释一下,从标签开始,我将所有节点都带到特定标签,该标签可以是第一个标签的子节点。 使用下面的例子,我希望澄清我的问题。
<div id="A">
<div id="B">
<div class="C">
<div class="D">
<div class="E"/>ev
<img src="xxx"/>ev
</div>
<div class="F">
<div class="G"/>
<img src="yyyy"/>ev
</div>
<div class="H">
<div class="I"/>
<img src="zzz"/>ev
</div>
<div class="L"/>
</div>
</div>
</div>
我想选择id =“B”的标签和class =“H”的标签之间的所有节点(不包括节点类=“H”)。 我做了一些测试,但我找不到解决方案。例如,我试过像/ div / div // [.// = div [@ class ='H']]之类的东西,但它不起作用。
答案 0 :(得分:0)
我发现唯一可能的解决方案是在给定XPath的语义的情况下获取节点D和F.因此,如果特别要求我获取id = B和class = H之间的节点,我可以写
$ specification = / div / div
两个职位的下降
$ start = $ specification / div / div
最后问节点H
$ expression = $ start / following-sibling :: [following :: [@ class ='H']
感谢大家的建议