默认名称空间前缀不匹配的XSLT模板

时间:2015-10-26 07:53:16

标签: xml xslt

我正在尝试编写一个插入子元素的XSLT过滤器转换。这是输入XML:

<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://example.org">
    <child info="first"/>
    <child info="second"/>
</root>

我的XSLT转换如下:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns="http://example.org" 
    xpath-default-namespace="http://example.org">

    <!-- insert new child element at front -->
    <xsl:template match="child[1]">
        <child info="very first"/>
        <xsl:copy>
            <xsl:apply-templates select="@* | node()"/>
        </xsl:copy>
    </xsl:template>

    <!-- standard copy template -->
    <xsl:template match="@* | node()">
        <xsl:copy>
            <xsl:apply-templates select="@* | node()"/>
        </xsl:copy>
    </xsl:template> 
</xsl:stylesheet>

复制模板工作正常,但应该执行特殊操作的模板不能。我已经尝试了其他帖子的几个提案,但没有用。我可以运行XSLT 2.0,但是不能使用前缀来更改输入文件。

0 个答案:

没有答案