如何删除xslt 1.0中的名称空间

时间:2013-09-11 09:11:36

标签: xslt namespaces

输入:

<?xml version="1.0" encoding="UTF-8" ?><DocumentCombined xmlns="http://xmlns.oracle.com/pcbpel/schema/ACCO_EDI_X12_Scheduledjobs/Write_867xmlfile">
   <Header xmlns="">
      <ISADATE>
         <value-of/>
      </ISADATE>
   </Header>
</DocumentCombined>

这里我需要将xmlns名称空间删除到DocumentCombined元素和Header元素。

输出:

<?xml version="1.0">
<DocumentCombined>
   <Header>
      <ISADATE>
         <value-of/>
      </ISADATE>
   </Header>
</DocumentCombined>

1 个答案:

答案 0 :(得分:2)

如果要删除所有名称空间,只需使用

<xsl:template match="@* | node()">
  <xsl:copy>
    <xsl:apply-templates select="@* | node()"/>
  </xsl:copy>
</xsl:template>

<xsl:template match="*">
  <xsl:element name="{local-name()}">
    <xsl:apply-templates select="@* | node()"/>
  </xsl:element>
</xsl:template>