使用命名空间将模板应用于XML

时间:2016-08-28 19:47:16

标签: xml xslt

我有以下XML数据:

<main xmlns="http://www.w3.org/1999/xhtml">
    <section>
        <value>s1</value>
    </section>
    <section>
        <value>s2</value>
    </section>
</main>

和XSLT:

<xsl:stylesheet version="1.0"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
    <xsl:output method="xml" encoding="UTF-8" indent="yes"/>

    <xsl:template match="/">
        <page>
            <xsl:apply-templates select="/main/section" />
        </page>
    </xsl:template>

    <xsl:template match="section">
        <test section="{value}" />
    </xsl:template>        
</xsl:stylesheet>

我期待的输出如下:

<page>
    <test section="s1" />
    <test section="s2" />
</page>

但我得到了:

<page xmlns="http://www.w3.org/1999/xhtml"/>

我使用this online tool对此进行了测试。显然我做错了什么,但现在已经很晚了,我无法解决这个问题。你能建议我解决这个问题吗?

更精确一点:我无法命名XML数据的命名空间,因此建议的副本的答案并不能解决这个问题。

0 个答案:

没有答案