给定以下示例 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 中具有“值 1”和在第二列的 div 中具有“值 2”的 (tr) 元素?在这个例子中,我只想要第一行。
如果我检索具有“值 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() 无济于事。有任何想法吗?谢谢