从HTML中删除空节点

7 html python

我们正在从一个内容系统迁移到另一个内容系统,并且有大量的HTML,其中有行,例如,像这样:

<p style="text-align: justify;"><i> </i></p>
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方法来剥离HTML与HTML,其中没有文本输出到屏幕.因此,与此类似的线将被剥离.

并且,这只是没有文本输出的许多行的例子之一.所以,我需要找到它们全部剥离.我不必担心图像,电影等,因为在旧的内容管理系统中只能使用文本.

顺便说一下,绝大多数行都是以p标签或div标签开头(忽略前导空格).

Dim*_*hev 3

如果 HTML 也是格式良好的 XML 文档(这可以使用HTML-Tidy等工具在预传递中完成),则此转换:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="node()|@*">
  <xsl:copy>
   <xsl:apply-templates select="node()|@*"/>
  </xsl:copy>
 </xsl:template>

 <xsl:template match="*[not(normalize-space(.))]"/>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

当应用于任何此类 XML 文档时——例如:

<html>
 <body>
   Welcome.
   <p style="text-align: justify;"><i> </i></p>
 </body>
</html>
Run Code Online (Sandbox Code Playgroud)

产生所需的结果,其中字符串值为空或全是空格的任何元素都被删除

<html>

   <body>
      Welcome.


   </body>

</html>
Run Code Online (Sandbox Code Playgroud)