XML+XSL输出HTML时,直接将XML输出为HTML的2种方法

时间:2022-02-26 19:37:58

test.xml:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<root>
 <html1><div><img src="xxx.jpg"/></div><div><img src="xxx.jpg"/></div></html1>
 <html2><![CDATA[<hr/><div><img src="xxx.jpg"/></div><div><img src="xxx.jpg"/></div>]]></html2>
</root>

XSL方法 1:

<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 <xsl:template match="/root">
  <xsl:copy-of select="html1/node()"/>
 </xsl:template>
</xsl:stylesheet>

XSL方法 2:

<?xml version="1.0" encoding="GB2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 <xsl:template match="/root">
  <xsl:value-of select="html2" disable-output-escaping="yes"/>
 </xsl:template>
</xsl:stylesheet>

两种方法都可以,但从应用上来说,我个人推荐第一种。因为disable-output-escaping属性,并不是所有浏览器都支持,如firefox就不支持。