【问题标题】:How to select all empty elements with XPath如何使用 XPath 选择所有空元素
【发布时间】:2015-04-05 14:59:26
【问题描述】:

假设以下标记:

<html>
  <body>
    <p>
      <strong>  </strong>
      <strong>
      </strong>
      <strong><em>Bar</em>  </strong>
      <strong><em>  </em>  </strong>
    </p>
  </body>
</html>

如何通过 XPath 查询获取以下元素?

<strong>  </strong>
<strong>
</strong>
<strong><em>  </em>  </strong>

我认为前两种情况都类似于//*[normalize-space(text()) = '' and not(node())],但事实并非如此。而且我不知道如何抓住第三个案例。

更准确地说:我正在搜索仅包含空格、换行符和相同子节点的所有节点。

【问题讨论】:

标签: xpath


【解决方案1】:

以下 XPath 查询将它们全部捕获:

//*[not(normalize-space())]

但不是:

<strong><em>Bar</em>  </strong>

【讨论】:

  • 它还会捕获不在预期结果列表中的&lt;em&gt; &lt;/em&gt;
  • @MichaelKay 它已经捕获了它在列表中的父级,所以在这种情况下我不会太在意......但如果你不想的话,我可以完成我的问题中的列表。
猜你喜欢
  • 2012-07-18
  • 2020-05-24
  • 1970-01-01
  • 2019-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-11
  • 2015-05-03
相关资源
最近更新 更多