2016-04-14 89 views
0

我想根据另一个使用xpath的位置选择一个html元素。例如:根据另一个位置选择一个xpath元素

<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相同。

我能找到我想要避免这样做

//td[2] 

的日

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

的位置有什么办法,我可以把两者联系起来?

回答

2

这是一种可能的方式:

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

xpathtester demo

的XPath返回td在位置等于的th位置。 th的位置是通过对XPath位置索引从1开始的前一个兄弟th +1进行计数而计算的。

相关问题