我有xslt文件看起来像:
<xsl:stylesheet version='2.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:output
method="xml"
encoding="utf-8"
media-type="application/xml"
cdata-section-elements="shortdescription"
/>
<xsl:template match='/'>
<items>
<xsl:apply-templates select="response/result/doc"/>
</items>
</xsl:template>
<!-- search results xslt -->
<xsl:template match="doc">
<Id><xsl:value-of select="$Id"/></Id>
</xsl:template>
</xsl:stylesheet>
及其在firefox 31中的显示ID如下:
52256
预期输出如:
<Id>52256</Id>
注意: - 在Google Chrome浏览器中,其工作正常
请帮帮我
提前致谢
答案 0 :(得分:1)
如果您在浏览器中运行XSLT,那么大多数浏览器都假定您要呈现转换结果,Firefox会使用XSLT转换结果执行此操作,如果您呈现包含文本节点的元素,则会显示文本节点的内容。 Firefox根本不会序列化XSLT转换的结果树,除非您使用Javascript来运行转换并在Javascript中明确使用XMLSerializer
来序列化DOM树。
另请注意,您的整个示例看起来很奇怪,它使用version="2.0"
虽然浏览器仅支持XSLT 1.0,但它引用了未声明的变量。