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">
ただし、次の出力が得られるように、これに 2 番目の名前空間を追加する必要があります。
<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 テンプレートと同じ出力しか得られません。
これがなぜなのか、誰かが私に教えてもらえますか?