如何将XPATH“select // td / text()或// td / p / text()”组合成一个句子?

时间:2012-06-02 19:06:37

标签: xpath path-combine

我想在以下HTML中的每一行中选择text()。但是,我想要的文本要么在 td 元素中,要么在 p 元素中,所以我必须编写两个语句来确保选中每一行。

如何将两个陈述合并为一个?

XPATH:

//table/tr/td[not(p)]/text() | //table/tr/td/p/text()

获得所需的结果:

['1', '2', '3', '4']

原创html:

<table>
  <tr>
    <td>1</td>
  </tr>
  <tr>
    <td>
      <p>2
    </td>
  </tr>
  <tr>
    <td>3</td>
  </tr>
  <tr>
    <td>
      <p>4
    </td>
  </tr>
</table>

1 个答案:

答案 0 :(得分:0)

可能你想要这样的东西:

//table/tbody/tr/td//text()[normalize-space()]

将找到//table/tr/td中一个或多个级别的所有非空白文本节点。