XSLT2.0的HTML输入:如何处理&;什么?

XSLT2.0的HTML输入:如何处理&;什么?,html,xml,xslt,Html,Xml,Xslt,在使用XSLT、如何在XSLT和CDATA输入中输出空格字符方面存在许多问题。这是一个不同的问题:我有HTML文件,其中包含,我想将它们转换为XML。我不知道如何使用Saxon XSLT 2.0处理器读取输入。这是一个文本挖掘应用程序,因此我无法控制输入 以下是输入的示例文本: <P STYLE="line-height:0px;margin-top:0px;margin-bottom:0px;border-> bottom:0.5pt solid #000000"> &

在使用XSLT、如何在XSLT和CDATA输入中输出空格字符方面存在许多问题。这是一个不同的问题:我有HTML文件,其中包含,我想将它们转换为XML。我不知道如何使用Saxon XSLT 2.0处理器读取输入。这是一个文本挖掘应用程序,因此我无法控制输入

以下是输入的示例文本:

<P STYLE="line-height:0px;margin-top:0px;margin-bottom:0px;border-> bottom:0.5pt solid #000000">
&nbsp;
</P> 
这是我的测试XSL文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "&#160;"> ]>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
        xmlns="http://www.w3.org/1999/html"
        version="2.0">
  <xsl:output method="xml" omit-xml-declaration="yes" encoding="utf-8"/>
  <xsl:strip-space elements="*"/>
  <!-- copy all elements and their attributes-->
  <xsl:template match="* | @*">
    <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates/></xsl:copy>
  </xsl:template>
</xsl:stylesheet>
从xsl:stylesheet声明中,它没有解决这个问题

显然,我不是唯一一个有这个问题的人。我肯定有一个简单的解决办法,我就是没能找到。这让我无法做真正的工作,所以我觉得自己很沮丧。任何帮助都将不胜感激

使用saxon:parse-html()扩展函数读取html并将其作为标准XDM树显示


或者,如果您想使用Saxon HE而不是-PE或-EE,请创建一个SAXSource来读取输入,其中XMLReader是一个HTML解析器,如TagSoup或validator.nu。

如果您想解析HTML而不是XML,那么您必须确保有一个HTML解析器可用,并告诉Saxon使用它而不是XML解析器。因此,下载TagSoup()或HTML5解析器()。

如果添加到输入文件中,它会工作吗?XSLT不适用于输入HTML。它必须是XML。我也会尝试添加到您的输入XML中。您是从Java代码调用Saxon,还是使用命令行转换器工具?您是否可以根据需要显示您的代码或正在使用的命令行选项?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "&#160;"> ]>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
        xmlns="http://www.w3.org/1999/html"
        version="2.0">
  <xsl:output method="xml" omit-xml-declaration="yes" encoding="utf-8"/>
  <xsl:strip-space elements="*"/>
  <!-- copy all elements and their attributes-->
  <xsl:template match="* | @*">
    <xsl:copy><xsl:copy-of select="@*"/><xsl:apply-templates/></xsl:copy>
  </xsl:template>
</xsl:stylesheet>
<!DOCTYPE xsl:stylesheet [ <!ENTITY html "&#160;"> ]>
xmlns="http://www.w3.org/1999/html"