gpt4 book ai didi

javascript - HTML XPath - 如何根据每个索引的子节点值选择节点?

转载 作者:行者123 更新时间:2023-11-28 08:45:45 25 4
gpt4 key购买 nike

给出以下示例 HTML 代码:

<table>
<tr>
<td>
<div>Value 1</div>
</td>
<td>
<div>Value A</div>
</td>
</tr>
<tr>
<td>
<div>Value 1</div>
</td>
<td>
<div>Value B</div>
</td>
</tr>
<tr>
<td>
<div>Value A</div>
</td>
<td>
<div>Value 1</div>
</td>
</tr>
</table>

是否可以编写一个 xpath 表达式来选择在第一列的 div 中具有“Value 1”并在第二列的 div 中具有“Value 2”的 (tr) 元素柱子?在这个例子中,我只想要第一行。

如果我检索所有具有“Value 1”后代的行,我将获得所有 3 行。

如果我检索所有具有“值 1”和“值 A”后代的行,我将得到第 1 行和第 3 行。

重要的不仅是值,还有顺序。另外,在我的实际情况中,有几列,我需要检查的列可能不是并排的。 (例如,我可能需要检查第 4 7 和 9 列)

我想我正在寻找类似的东西,但它对我不起作用(奇怪的格式是为了可读性,但我相信它仍然有效):

//table//tr
[
(.//div[position()=1 and text()='Value 1'])
and
(.//div[position()=2 and text()='Value A'])
]

我也尝试过[1]和[2]而不是position(),但没有成功。有任何想法吗?谢谢

最佳答案

简单

//tr[normalize-space(td[1]/div) = 'Value 1' and normalize-space(td[2]/div) = 'Value A']

演示 - http://www.xpathtester.com/obj/e3d5b9bf-79d5-4e81-a336-daba38d430fe

关于javascript - HTML XPath - 如何根据每个索引的子节点值选择节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19825619/

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