排除包含属性的元素及其所有子元素
Posted
技术标签:
【中文标题】排除包含属性的元素及其所有子元素【英文标题】:Exclude element containing attribute and all its children 【发布时间】:2021-11-24 17:37:57 【问题描述】:我目前正在尝试检索网页上的所有元素,不包括链接及其子元素。
页面组成如下:
<body>
<p>
...
<a href='...'>
<strong> ... </strong>
</a>
...
</p>
<p>
...
<a href='...'>
<strong> ... </strong>
</a>
...
</p>
</body>
我能够使用//body//*[not(@href)]
获取除链接之外的所有元素。
不过,我也捕获了包含 href
属性的元素的子元素。
如何过滤掉包含href
属性及其子属性的元素?
【问题讨论】:
【参考方案1】:要实现这一点,您可以指定所有节点既不具有href
属性,也不具有href
属性的祖先。
//body//*[not(@href or ancestor::*/@href)]
【讨论】:
以上是关于排除包含属性的元素及其所有子元素的主要内容,如果未能解决你的问题,请参考以下文章