gpt4 book ai didi

xpath - XPath:查找 child 和 sibling 中的首次出现

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

所以我有一些看起来像这样的HTML:

<tr class="a">
<td>...</td>
<td>...</td>
</tr>
<tr>
<td>....</td>
<td class="b">A</td>
</tr>
<tr>....</tr>
<tr class="a">
<td class="b">B</td>
<td>....</td>
</tr>
<tr>
<td class="b">Not this</td>
<td>....</td>
</tr>


我基本上是想在 td类和 b之后找到 tra的第一个实例。问题来了,它可能在 tr的子代中,也可能在它之后的下一个 tr中。

我可以得到第二种情况:

//tr[@class="a"]//td[@class="b"]


但这错过了第一种情况,因为TD是同级的,而不是直接的后代。有想法吗?

最佳答案

对于第二种情况(tdtr的直接后代):

//tr[@class="a"]//td[@class="b"][1] 


对于第一种情况( tdtr之后),这不属于第二种情况类别:

//tr[@class="a" and not(.//td[@class="b"])]/following::td[@class="b"][1]


使用联合运算符( |)将两个xpath查询组合在一起会产生预期的输出:

//tr[@class="a"]//td[@class="b"][1] | //tr[@class="a" and not(.//td[@class="b"])]/following::td[@class="b"][1]


输出:

Element='<td class="b">A</td>'
Element='<td class="b">B</td>'

关于xpath - XPath:查找 child 和 sibling 中的首次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30657618/

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