xPath:从父节点下降到匹配条件的子子子节点?

时间:2016-03-23 20:06:58

标签: python xml xpath

我试图写一个xpath来获取下面"I want to get this text snippet"的文字。

<root>
  <div class="box">
    <div class="col-lg-12">
      <h2>Issuer</h2>
    </div>
  </div>
  <div class="table-responsive">
    <table class="table">
      <tbody>
        <tr>
          <td> Name </td>
          <td class="text-right"> I want to get this text snippet </td>
        </tr>
      </tbody>
    </table>
  </div>
</root>

到目前为止,我有这个:

//h2["Issuer"]/parent::div/parent::div/following-sibling::div//td["Name"]/following-sibling::td/text()

目前这一行有两个部分:

  1. //h2["Issuer"]/parent::div/parent::div/following-sibling::div将我们带到<div class="table-responsive">
  2. //td["Name"]/following-sibling::td/text()将我们带到<td>区块中的文字片段目标。
  3. 这两个部分都很重要,因为真实网页源代码中有多个位置可以找到<td> Name </td>。因此,第一部分确定整体结构的开始位置。

    我使用//引导第二部分是否正确下降到符合条件的任何子节点?我问这个是因为我无法找到匹配。

1 个答案:

答案 0 :(得分:2)

您几乎是正确的,只需添加文本检查:

//td[normalize-space(.) = "Name"]/following-sibling::td[1]/text()