我正在使用 Microsoft 的 XSLT 处理器(仅限 1.0)
XML 开场白:
<?xml version="1.0" encoding="utf-8"?>
<Header xmlns="http:\\OldNameSpace.com">
<Detail>
使用以下 XSLT 模板来获取<Header>
我的文档的元素并更改其名称空间。
<xsl:template match="*">
<xsl:element name="{name()}" xmlns="http:\\NewNameSpace.com">
<xsl:copy-of select="@*"/>
<xsl:apply-templates />
</xsl:element>
</xsl:template>
变成<Header xmlns="http:\\OldNameSpace.com">
_<Header xmlns="http:\\NewNameSpace.com">
但是,我现在需要为此添加第二个命名空间,以便获得以下输出:
<Header xmlns="NewNameSpace.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
我试过使用:
<xsl:template match="*">
<xsl:element name="{name()}" xmlns="NewNameSpace.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:copy-of select="@*"/>
<xsl:apply-templates />
</xsl:element>
</xsl:template>
但是,我仍然只能得到与原始 XSLT 模板相同的输出。
谁能告诉我这是为什么?