2015-02-18 191 views
0

比方說,我有一個看起來像選擇XPath元素

<parent elements> 
    <div> 
     <h2>Dog</h2> 
    <div> 
     <h2>Cat</h2> 
     <table> 
      <tbody> 
       <tr>Some Text</tr> 
       <tr>Some Text</tr> 
       <tr>Some Text</tr> 
       <tr>Some Text</tr> 
       <tr>Target</tr> 
      </tbody> 
    <div> 

我首先需要將它縮小到只有DIV其中值裏面的H2標籤是一個XPath的部分= =「貓」。在此之後,我需要鑽入所述div並提取第5個tr元素。

我試圖克服的問題是,所有的div都有獨特的h2's,但它們是隨機排列的,所以有時候h2 ==「Cat」的div可能是./div[1],而其他時間它可能是./div[5]。一旦我確定了具有適當h2(唯一標識符)的div,我就可以始終可靠地始終提取第5個tr元素。

我目前正試圖下面的代碼,但它只返回真/假

./parent_elements[div/h2 = "Web Site Information"] 

非常感謝!

回答

1

隨着你的榜樣輸入XML是無效的,我只是它調整到這一點:

<parent_elements> 
    <div> 
    <h2>Dog</h2> 
    <div> 
     <h2>Cat</h2> 
     <table> 
      <tbody> 
      <tr>Some Text</tr> 
      <tr>Some Text</tr> 
      <tr>Some Text</tr> 
      <tr>Some Text</tr> 
      <tr>Target</tr> 
      </tbody> 
     </table> 
    </div> 
    </div> 
</parent_elements> 

在這個例子中,下面的XPath

//parent_elements//div[h2='Cat']//tr[5] 

有結果

<tr>Target</tr> 

此XPath選擇第五個tr,它是h2 el值爲Cat,這是parent_elements的子元素。