2015-02-18 194 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的子元素。