xpath - 根据另一个元素的位置选择一个xpath元素

标签 xpath

我想使用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在tds集合中与具有内容Col2的th处于相同位置。

我可以找到它的位置

//th[contains(.,'Col2')]


我想避免这样做

//td[2]


有什么办法可以将两者联系起来吗?

最佳答案

这是一种可能的方式:

//td[
    position() = count(//th[contains(.,'Col2')]/preceding-sibling::th)+1
 ]


xpathtester demo

XPath在等于td位置的位置返回th。由于XPath位置索引从1开始,th的位置是通过计算前面的同级th +1的数量来计算的。

关于xpath - 根据另一个元素的位置选择一个xpath元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36621286/

相关文章:

java - 使用 webdriver 查找元素时如何在 xpath 中使用撇号 (')?

xpath - 带有通配符的 SoapUI XPath 断言

java - 如何使用 XPath 获取元素节点之间的原子值

xslt - 存在哪些 XSLT 2.0 工具?

powershell - 从特定的XML字段中检索值

c++ - XPATH与XSLPattern向后兼容

xml - 元素的数字索引顺序的 XPath

python - 如何在lxml中找到元素的直接子元素

java - xml xpath来匹配java中任一类型的元素

xml - 如何使用 xpath/xquery 从 rss feed 获取图片 url