У меня есть xml, как показано ниже
<rnp xmsns="v1">
<ele1 line="1">
<ele2></ele2>
</ele1>
</rnp>
Я хочу изменить его на
<rnp xmsns="v2">
<ele1 line="1">
<ele2></ele2>
</ele1>
</rnp>
с помощью xslt 1.0.
Я использую ниже xsl.
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="v2">
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="@*|*|node()"/>
</xsl:element>
</xsl:template>
<xsl:template match="rnp">
<rnp>
<xsl:apply-templates select="*"/>
</rnp>
</xsl:template>
</xsl:stylesheet>
Но этот xsl не копирует атрибуты, поэтому атрибут строки не создается на выходе.
образец вывода
<?xml version="1.0" encoding="UTF-8"?><rnp xmlns="v2"><ele1>1
<ele2/>
</ele1></rnp>
Как изменить только текст атрибута xmlns с помощью xslt? Есть ли другой способ изменить xmlns с помощью xslt? У меня есть только вариант xslt 1.0.
Спасибо.