将XSL模板输出传递给XSL函数

时间:2010-10-28 16:03:39

标签: json xslt-2.0

我正在使用XSLTJSON将我的XML转换为JSON。我的原始XML不是我想要的格式,所以我首先通过XSL样式表将其清理干净,然后将该样式表的输出传递给XSLTJSON。

现在我通过串行调用变压器来做到这一点。我想简化它并且只需要一次变压器调用。有没有办法编写一个包含json.xsl的XSL样式表,匹配“/”,是否可以将其输出传递给json:generate()?

1 个答案:

答案 0 :(得分:0)

此样式表:

<xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:json="http://json.org/">
    <xsl:import href="xml-to-json.xsl"/>
    <xsl:template match="/">
        <xsl:variable name="vFirstPass">
            <xsl:apply-templates/>
        </xsl:variable>
        <xsl:value-of select="json:generate($vFirstPass)"/>
    </xsl:template>
    <xsl:template match="node()|@*">
        <xsl:copy>
            <xsl:apply-templates select="node()|@*"/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>