xPath/HTML:根据相关节点选择节点

cha*_*n95 7 html xpath

<html>
    <body>
        <table>
            <tr>
                <th>HeaderA</th>
                <th>HeaderB</th>
                <th>HeaderC</th>
                <th>HeaderD</th>
            </tr>
            <tr>
                <td>ContentA</td>
                <td>ContentB</td>
                <td>ContentC</td>
                <td>ContentD</td>
            </tr>
         </table>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我正在寻找最有效的方法来根据相应的' th '节点中的标题选择内容' td '节点.

我当前的xPath表达式..

/html/body/table/tr/td[count(/html/body/table/tr/th[text() = 'HeaderA']/preceding-sibling::*)+1]
Run Code Online (Sandbox Code Playgroud)

一些问题..

  • 你可以../..在里面使用相对路径()count()吗?
  • 还有哪些其他选项可以找到当前节点号td[?]count(/preceding-sibling::*)+1最有效?

Har*_*men 3

  • 可以在里面使用相对路径count()
  • 我从未听说过另一种查找节点号的方法......

这是 count() 内带有相对 xpath-code 的代码

/html/body/table/tr/td[count(../../tr/th[text()='HeaderC']/preceding-sibling::*)+1]
Run Code Online (Sandbox Code Playgroud)

但是,好吧,它并没有短多少......我认为它不会比这个短:

//td[count(../..//th[text()='HeaderC']/preceding-sibling::*)+1]
Run Code Online (Sandbox Code Playgroud)