2016-12-02 55 views
0

我想删除现有名称空间并向我的XML文档添加另一个名称空间。当我没有添加属性时,它正在工作。现在,当我添加一个属性“ID”删除代码不起作用。使用XSLT删除名称空间不起作用

我的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我申请(用我以前的帖子Unable to Update the Namespace of XML Document前的工作)是代码:

<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> 

回答

1

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

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

在此之前:

<xsl:apply-templates/> 
+0

你摇滚的人!总是寻求帮助! –