是否有任何XPath模式可以选择除最后一个节点之外的所有html代码? 例如,假设我想要除this HTML code中的最后一个之外的所有段落: 我尝试了这些在表达式中返回空值或错误的模式(我使用HAP Testbed v1.1.0.0来测试HTML代码上的模式):
//body//p[last()] != true
not(//body//p[last()])
//body//not[p[last()]]
问题:
not()
函数是否返回布尔值? - 如果没有,我怎样才能将它用于我的目的?答案 0 :(得分:4)
如果路径表达式exp
选择了一组节点,则可以使用(exp)[position() != last()]
选择节点集中除最后一个节点外的所有节点。所以使用(//p)[position() != last()]
。如果您不在//p[position() != last()]
中使用括号,则可以选择/descendant-or-self::node()/p[position() != last()]
,这将选择不是其父母中最后p
个孩子的所有p
个元素。所以在
<root>
<div>
<p>1</p>
<p>2</p>
</div>
<div>
<p>3</p>
<p>4</p>
</div>
</root>
该路径(//p)[position() != last()]
选择前三个p
元素,而//p[position() != last()]
将选择第一个和第三个p
元素。
答案 1 :(得分:0)