2016-04-14 86 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進行計數而計算的。

相關問題