У меня есть следующие XML:XSLT преобразование Переселение Xmlns Instance
<root xmlns:myns="derf">
<child>
<grandchild>mikey</grandchild>
</child>
</root>
И я пытаюсь включить его в следующий XML:
<root xmlns="theNamespace" xmlns:myns="derf">
<child>
<grandchild>mikey</grandchild>
</child>
</root>
Я думал, что следующий XSLT бы сделать это:
<xsl:template match="/">
<xsl:apply-templates select="/root"/>
</xsl:template>
<!-- identity template -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="root">
<root xmlns="theNamespace">
<xsl:apply-templates select="@*|node()"/>
</root>
</xsl:template>
Хотя, который излучает:
<root xmlns="theNamespace">
<child xmlns="" xmlns:myns="derf">
<grandchild>mikey</grandchild>
</child>
</root>
Может кто-нибудь помочь мне понять - и в идеале исправить - почему этот xmlns:myns="derf"
заканчивается на узле вместо узла root
на моем выходе?
Я в основном просто хочу увеличить исходный XML с помощью значения пространства имен xmlns
.
Заранее спасибо, Matt
волшебный, спасибо. также спасибо за объяснения. –