用FF进行调试的时候,大概有很多人都遇到这个问题,下面看一下问题范例:
XML:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<Menus>
<aa> aa </aa>
<bb> bb </bb>
<cc> cc </cc>
</Menus>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<Menus>
<aa> aa </aa>
<bb> bb </bb>
<cc> cc </cc>
</Menus>
问题XSL:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
用这段XSL在IE下没问题,但是在FF 1.5(其他版本没试过)却是无法显示。
原因很简单,因为XSLT的默认输出是HTML,而这里没有任何的HTML代码。
因此,解决这个问题,要么输出HTML格式,要么改变XSLT的输出方式。
解决方法:
下面就是将输出方式改为TEXT。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<xsl:output method="text"/><!-- 关键的语句就是这句 -->
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
<xsl:output method="text"/><!-- 关键的语句就是这句 -->
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>