以下のような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 は属性をコピーしないため、line 属性は出力に生成されません。
サンプル出力
<?xml version="1.0" encoding="UTF-8"?><rnp xmlns="v2"><ele1>1
<ele2/>
</ele1></rnp>
xsltを使用してxmlns属性のテキストのみを変更するにはどうすればよいですか? xslt を使用して xmlns を変更する他の方法はありますか? xslt 1.0 のオプションしかありません。
ありがとう。