使用 XSLT 删除命名空间不起作用

Removal of Namespace using XSLT is not Working

我正在尝试删除现有命名空间并向我的 XML 文档添加另一个命名空间。当我没有添加属性时,它正在工作。现在,当我添加属性 "id" 时,删除代码不起作用。

我的XML文档是:

<?xml version="1.0" encoding="UTF-8"?>

<n0:eCPR xmlns:prx="urn:sap.com:proxy:DV4:/1SAI/TAS1F59A417878D36573F1D:700:2013/05/24" xmlns:n0="http://www.dir.ca.gov/dlse/CPR-Prod-Test/CPR.xsd">

<n0:employees>
  <n0:employee>
    <n0:name id="20019768">Paul John</n0:name>
</n0:employee>
</n0:employees>
</n0:eCPR>

我想要的是:

<CPR:eCPR xmlns:CPR="http://www.dir.ca.gov/dlse/CPR-Prod-Test/CPR.xsd">
 <CPR:employees>
   <CPR:employee>
   <CPR:name id="12345">JOHN SMITH</CPR:name>
   </CPR:employee>
 </CPR:employees>
</CPR:eCPR>

我应用的 XSLT 代码(在使用我以前的 post 之前工作)是:

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:CPR="http://www.dir.ca.gov/dlse/CPR-Prod-Test/CPR.xsd">
 <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
 <xsl:strip-space elements="*"/>

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

</xsl:stylesheet>

如果你的输入有属性,你需要做:

<xsl:copy-of select="@*"/>

在你做之前:

<xsl:apply-templates/>