【问题标题】:How to combine XPATH "select //td/text() or //td/p/text()" into one sentence?如何将XPATH“select //td/text() or //td/p/text()”组合成一句话?
【发布时间】:2012-06-02 19:06:37
【问题描述】:

我想在以下 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>

【问题讨论】:

    标签: xpath path-combine


    【解决方案1】:

    可能你想要这样的东西:

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

    将找到//table/tr/td 深处一层或多层的所有非纯空白文本节点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-05
      • 2020-12-07
      • 1970-01-01
      • 2021-05-17
      • 2013-09-14
      相关资源
      最近更新 更多