XSLT命名空间更改

时间:2012-04-05 08:16:14

标签: xml xslt xpath namespaces

我有以下内容:

<Data xmlns:x="Namespace.com">
    <Node></Node>
    <Node2></Node2>
    <Node3></Node3>
</Data>

如何使用XSLT更改数据节点中的一个命名空间,而不会在其他任何地方看到命名空间声明。

期望的输出:

<Data xmlns:x="TheNewNamespace.com">
    <Node></Node>
    <Node2></Node2>
    <Node3></Node3>
</Data>

提前致谢

1 个答案:

答案 0 :(得分:2)

使用:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="*">
    <xsl:element name="{name()}" namespace="TheNewNamespace.com">
      <xsl:copy-of select="@*"/>
      <xsl:apply-templates/>
    </xsl:element>
  </xsl:template>

</xsl:stylesheet>