2014-04-11 26 views
1

我试图将HTML转换为XML。我的输入HTML是动态获取的,输入的HTML具有如下的html实体编号。xslt中的HTML实体编号

HTML输入:

<root> 
     <h1>Hello stack Over flow</h1> 
     <H1 align="left">The list will be managed with a &#160;<SUB>of &#169;&#160;&#174;</H1> 
     </root> 

我的长相变换如下:

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
    exclude-result-prefixes="msxsl"> 

    <xsl:output method="xml" indent="yes"/> 

    <xsl:template match="root"> 
    <xsl:copy > 
    <xsl:apply-templates/> 
    </xsl:copy> 
    </xsl:template> 
</xsl:stylesheet> 

输出从变换写所有的HTML实体数为HTML特殊字符。

所需的输出应该具有html实体编号而不是html字符。请帮我解决这个问题?

回答

1

您可以尝试将encoding="US-ASCII"放在您的xsl:output指令上,那样该编码之外的任何字符都应作为字符引用输出。

+0

我已经做到了..但是它给ascii格式如下。但我需要html数字格式。

你好堆放超过流动

列表将与©   ®   TM一个   &#x20AC管理;   ©

Blossom

+1

找出你使用的XSLT处理器,并检查是否有任何选项输出十进制字符引用,而不是十六进制的。但是你输出的XML格式都是允许的,我想,即使Html支持这两种表示法,我认为我不确定为什么你坚持使用十进制字符引用。 –