我认为这很棘手。我想要下面的xml,其中getpositionrouter元素更改为"新元素"。问题是,这应该是输入输出的唯一变化。这甚至是命名空间"pos",也应该保留。因此,在输入中,它可以是ns1="positionNS",而不是pos。那么输出也应该是ns1。
input
<pos:getPositionRouter xmlns:pos="positionNS">
<positionID>
<code>1</code>
</positionID>
<parameter>?</parameter>
</pos:getPositionRouter>
期望输出
<pos:newelement xmlns:pos="positionNS">
<positionID>
<code>1</code>
</positionID>
<parameter>?</parameter>
</pos:newelement>
如果以下样式表
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pos="positionNS">
<xsl:output method="xml" indent="yes" />
<xsl:template match="/">
<xsl:apply-templates select="pos:getPositionRouter" />
</xsl:template>
<xsl:template match="pos:getPositionRouter">
<pos:newElement>
<xsl:apply-templates select="node() | @*" />
</pos:newElement>
</xsl:template>
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>