XPath选择所有文本(text()),但不包括特定标签/类属性。

5

我想问一个问题:

结构类似于:

<div class='item'>
    <div class='all'>
       BY
       <p>ABC</p>
       <p>DEF</p>
       <p>
         <span class="date">19991111</span>
       </p>
    </div>
</div>

我想问如何选择所有的text()(按ABC DEF排序),但不包含<span class="date">DDD</span>(19991111)

我发现了not()方法span[not(@class, 'date'),但不知道如何与//div[@class=item]/div[@class='all']//text()结合使用

请教一下,谢谢

2个回答

2
您可以像这样将它们组合起来:

//div[@class=item]/div[@class='all']//text()[not(parent::span[@class='date'])]

上述XPath选择所有父级不匹配
内的文本节点。

您可能还想使用normalize-space()过滤空文本节点:

//div[@class=item]/div[@class='all']//text()[not(parent::span[@class='date']) and normalize-space()]

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接