我如何排除包含包含要刮除的元素,或者我使用的当前xpath无法正常工作。 // div / li [contains(text(),'Night')或contains(text(),'Big')
答案 0 :(得分:1)
要完成@Sergii Dmytrenko的回答,请同时使用小写的or
运算符。
//div/li[contains(text(), 'Night') or contains(text(), 'Big')]
前面的XPath将输出li
个包含文本“ Night”或“ Big”(区分大小写)的元素。
为了排除元素,您可以使用not
运算符,如前所述。
旁注:将!=
(不等于)与and
运算符一起使用也可以排除元素:
//div/li[text()!='Night' and text()!='Big']
这将排除严格包含(无更多文字)“夜”或“大”的元素。
编辑:假设您拥有:
<div>
<h2>Night of the living dead</h2>
<h2>Big fish</h2>
<h2>Save the last dance</h2>
<h2>Tomorrow never die</h2>
<h2>Australia nuclear war</h2>
</div>
要选择不包含“夜”,“大”或“澳大利亚”的元素,您有两个选择:
在or
条件内使用not
运算符:
//div/h2[not(contains(text(),'Night') or contains(text(),'Big') or contains(text(),'Australia'))]
与and运算符一起使用多个not
:
//div/h2[not(contains(text(),'Night')) and not(contains(text(),'Big')) and not(contains(text(),'Australia'))]
输出:2个节点:
Save the last dance
Tomorrow never die
答案 1 :(得分:1)
您的XPath表达式(如果输入错误得到纠正,li[contains(text(), 'Night') or contains(text(), 'Big')]
)将返回li
个元素,其文本为“ Night”或“ Big”。
要排除这些错误,正确的表达应为
//div/li[not(contains(text(), 'Night') or contains(text(), 'Big'))]
或者您可以尝试
//div/li[not(contains(text(), 'Night')) and not(contains(text(), 'Big'))]
答案 2 :(得分:0)
您的xpath应该以']'结尾,当前无效。
如果您想排除“夜”和“大”,则可以尝试以下方法:
// div / li [not(contains(text(),'Night')或contains(text(),'Big'))]