我想排除所有使用xpath链接的标记
<p/>...</p> <p/>...</p> .... <p/> <strong/> <a href="https://exapmle.com" rel="nofollow">Link</a> </strong> </p>
我需要解析所有标记,但不包括包含href的最后一个标记找到一些here尝试p[not(contains(@href,'example'))],但不起作用
p[not(contains(@href,'example'))]
6yjfywim1#
这个XPath将为您提供所有p节点,这些节点不包含包含href属性的a子节点:
p
href
a
"//p[not(.//a[@href])]"
另外,由于您使用的是Selenium,XPath2.0在这里不相关,因为Selenium只支持Xpath1.0
uxhixvfz2#
也许这一个?
//p[descendant::a[not(contains(@href,'example'))]]
您将获取所有p元素,这些元素的a查尔兹元素不包含值为example的href属性此外,这一个可以有效的你想要什么:
example
//p[.//a[not(contains(@href,'example'))]]
qcbq4gxm3#
我想你想要这个
//a[@href]/ancestor::p[1]
在此XML文档上计算上述XPath表达式时:
<html> <p>1</p> <p>2 <p>23 <a href="xxx">XXX</a> </p> </p> <p>3 <p>34 <a href="yyy">YYY</a> </p> </p> <p>4 <p>45 </p> </p> </html>
恰好选择所需的(要排除的)<p>元素:
<p>
<p>23 <a href="xxx">XXX</a> </p> <p>34 <a href="yyy">YYY</a> </p>
如果您需要除上述之外的所有元素,请用途:
//*[count(. | //a[@href]/ancestor::p[1]) > count(//a[@href]/ancestor::p[1]) ]
3条答案
按热度按时间6yjfywim1#
这个XPath将为您提供所有
p
节点,这些节点不包含包含href
属性的a
子节点:另外,由于您使用的是Selenium,XPath2.0在这里不相关,因为Selenium只支持Xpath1.0
uxhixvfz2#
也许这一个?
您将获取所有
p
元素,这些元素的a
查尔兹元素不包含值为example
的href
属性此外,这一个可以有效的你想要什么:
qcbq4gxm3#
我想你想要这个
在此XML文档上计算上述XPath表达式时:
恰好选择所需的(要排除的)
<p>
元素:如果您需要除上述之外的所有元素,请用途: