gpt4 book ai didi

r - 如何在 xpath 中的不同类上使用 contains 和 not contains

转载 作者:行者123 更新时间:2023-12-02 13:00:53 26 4
gpt4 key购买 nike

我正在努力处理这个简单的代码。

<div id="post_message_975824" class="alt3">
<div class="quote">
some unwanted text
</div>
the text to get <abr>ABR</abr> text to get
</div>

我想让这个工作:

xpath = "//*[contains(@id, 'post_message_') and not(contains(@class,'quote'))]"

但这失败了。我试图使用另一个查询,但不确定我做错了什么?

编辑

我发现他的代码有效:xpath = "//*[contains(@id,'post_message_')//div[not(contains(@class,'quote'))]"

但是当 html 中没有 quote 子类时,它不会选择所需的文本。

这个想法是从所有子节点获取所有文本,但不从受限制的子节点获取所有文本。

最佳答案

试试这个 xpath :

//div[contains(@id,'post_message_')]/text() | //div[contains(@id,'post_message_')]/*[not(contains(@class,'quote'))]/text()

xpath的第一部分//div[contains(@id,'post_message_')]/text()给出父项 div 下的文本即<div id="post_message_975824" class="alt3">

xpath第二部分//div[contains(@id,'post_message_')]/*[not(contains(@class,'quote'))]/text()仅当子节点不包含名为 class 的属性时,才给出其所有子节点下的文本值(value)quote

您的示例的结果是:

   the text to get 
ABR
text to get

关于r - 如何在 xpath 中的不同类上使用 contains 和 not contains,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43687018/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com