gpt4 book ai didi

javascript - 确定多个 XPath 的存在和值

转载 作者:行者123 更新时间:2023-12-03 06:55:47 25 4
gpt4 key购买 nike

我有:

<span class="class1">One</span>

或者:

<span class="class2">Two</span>

或者:

<span class="class1">One</span>
<span class="class2">Two</span>

因此,可以有其中一个元素,也可以同时有两个元素。我需要使用 XPath 从中提取文本。为此,例如,我使用纯 JS:

document.evaluate("//SPAN[contains(concat(' ',normalize-space(@class),' '),' class1 ')]",document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;

这适用于任何单个节点。我需要一个 XPath,它可以从“class2”中提取文本(如果两者都存在),或者如果只有一个存在,则从存在的文本中提取文本。

元素的位置可以互换。

所以:

<span class="class2">One</span> //->One

<span class="class2">Two</span> //->Two

<span class="class1">One</span> 
<span class="class2">Two</span> //->Two

不用说,我很少使用XPath,所以我对它们知之甚少。我应该如何继续?

最佳答案

您可以匹配具有以 class 开头的 class 属性的元素,如下所示:

//span[contains(concat(' ',normalize-space(@class),' '),' class')]

或者匹配 class1class2 以更具体(格式化以提高可读性):

//span[
contains(concat(' ',normalize-space(@class),' '),' class1 ')
or
contains(concat(' ',normalize-space(@class),' '),' class2 ')
]

关于javascript - 确定多个 XPath 的存在和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30129994/

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