在不更改命名空间的情况下更改元素名称



我认为这很棘手。我想要下面的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>

相关内容

  • 没有找到相关文章

最新更新