我想根据另一个使用xpath的位置选择一个html元素。例如:
<table>
<tr>
<th>
Col1
</th>
<th>
Col2
</th>
<th>
Col3
</th>
<th>
Col4
</th>
</tr>
<tr>
<td>
Value1
</td>
<td>
Value2
</td>
<td>
Value3
</td>
<td>
Value4
</td>
</tr>
</table>
在这个例子中,我希望td集合中的td位于与内容Col2相同的位置。
我可以找到第
的位置//th[contains(.,'Col2')]
我想避免这样做
//td[2]
我有什么方法可以将这两者联系起来吗?
答案 0 :(得分:4)
这是一种可能的方式:
//td[
position() = count(//th[contains(.,'Col2')]/preceding-sibling::th)+1
]
<强> xpathtester demo
强>
XPath返回td
位置等于th
的位置。 {em}位置th
是通过计算前一个兄弟th
的数量来计算的,+1,因为XPath位置索引从1开始。