XSLT输出XSLT

时间:2015-05-24 03:53:42

标签: xml xslt

最近我对XSLT的奇妙力量感到惊讶。我发现最有趣的一件事是使用XSLT处理其他XSLT文档以生成动态模板。虽然我可以想象使用原始文本输出在输出中生成必要的XSL标记(例如,<![CDATA[<xsl:value-of="" />]]>)是多么容易,但是因为XSLT定义为XML文档,所以肯定有一种方法可以生成有效的XSLT输出作为XML树。如果有的话,如何在不混淆XSLT解析器的情况下完成此操作(因为输入模板和输出都将存在于同一命名空间中)?

1 个答案:

答案 0 :(得分:0)

感谢Pawel对xsl:namespace-alias的洞察力。我似乎没有在搜索引擎上找到合适的关键字。对于任何对工作解决方案感兴趣的人,可以是一个例子:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:axsl="http://www.w3.org/1999/XSL/TransformAlias">

<xsl:namespace-alias stylesheet-prefix="axsl" result-prefix="xsl"/>

<xsl:template match="/">
    <axsl:stylesheet version="1.0">
        <axsl:template match="/">
            <axsl:value-of select="'Some text'" />
        </axsl:template>
    </axsl:stylesheet>
</xsl:template>

</xsl:stylesheet>

哪会导致输出:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <xsl:value-of select="'Some text'" />
    </xsl:template>
</xsl:stylesheet>