xpath用class排除某些子元素

时间:2015-05-15 17:29:31

标签: html xpath web-scraping

我有一个html结构,例如下面的简化版本。我想从xpath内容中排除yarpp相关的div。以下是我现在正在使用的内容:

//div[@class='entry-content']

我如何排除与yarpp相关的div?

html结构

<div class="entry-content">
    <div class="yarpp-related">
    </div>
</div>

2 个答案:

答案 0 :(得分:1)

//div[@class='entry-content'][not(contains(div/@class, 'yarpp-related'))]

//div[@class='entry-content']/div[not(contains(@class, 'yarpp-related'))]

答案 1 :(得分:0)

XPath用于选择,而不是操纵。您可以选择XML文档中存在的节点,但不能转换这些节点。

在您的情况下,如果您的XML文档包含此节点,

<div class="entry-content">
    <div class="yarpp-related">
    </div>
</div>

您可以通过entry-content选择div //div[@class='entry-content'],但所选节点将显示在源XML中,即 with 孩子yarpp-related div节点。

如果您想操纵或转换通过XPath选择的节点(以排除其子元素),您必须使用托管语言(XSLT,Python,Java,C#等)来操作选择。