先前的兄弟节点返回空节点

时间:2014-12-06 19:44:03

标签: xpath

在这个例子中我有这个代码:

<table class="basicinfo" cellspacing="0">
  <tr class="header">
    <td colspan="3">
      <div>
        <h2 class="prod_card">Basic info</h2>
      </div>
    </td>
  </tr>

  <tr class="row2 item">
    <td class="cell0">
      <div>
        Year
      </div>
    </td>

    <td class="cell1">
      <div>
        2005
      </div>
    </td>
  </tr>

  <tr class="row3 item alt">
    <td class="cell0">
      <div>
        Extra
      </div>
    </td>

    <td class="cell1">
      <div>
        -
      </div>
    </td>
  </tr>
</table>

现在,我想得到(例如)year。我试图在div内容div之后获取下一个Year内容。

我使用此xpath但没有成功:

//div[preceding-sibling::div = 'Year']

有谁知道一个好的网站开始学习xpath?提前谢谢!

1 个答案:

答案 0 :(得分:0)

关注XPath

//div[parent::td/preceding-sibling::td//div[normalize-space()= 'Year']]

有结果

<div>2005</div>

您的XPath无效,因为您要查找的divdiv元素不是preceding-siblingtd的{​​{1}}不是parent。此preceding-sibling::td的{​​{1}}包含一个div,其中包含文字“Year” - td。使用td//div将返回此normalize-space()的文本,而不检查相等性时可能需要的任何空格。

供参考:normalize-space(),并且当您要求提供良好的资源时 - 我不想推荐任何特别的内容,但您应该查看stackoverflow上给出的信息中提到的资源:{{ 3}}(如果尚未完成),对于XPath轴,这是一个很好的可视化:https://stackoverflow.com/tags/xpath/info