我正在从XML中的一个名称空间移动到另一个名称空间,并且我一直面临类型元素的xsi:type属性问题。 我一直在使用下一个模板,它可以轻松将具有一个名称空间的元素移动到另一个名称空间。替换名称空间 - 具有名称空间的属性值的问题
<xsl:template match="ent:*" >
<xsl:element name="ent:{local-name()}"
namespace="http://ns3">
<xsl:copy-of select="@*" />
<xsl:apply-templates />
</xsl:element>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
但我无法将属于给定名称空间的属性值更新为xsi:type属性。
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ser:getAsByIdResponse xmlns:ser="http://osde.com.ar/services">
<return xmlns:xsi=".." xmlns:ns3New="http://ns3" xmlns:ns1New="http://ns2" xsi:type="nsold:aType"/>
</ser:getAsByIdResponse>
</soap:Body/>
</soap:Envelope>
在上面的例子中,我不能改变“nsold:atype的”一个像“ns3New:atype的”使用新名字空间。 有什么办法可以调整这种值吗?
那么,什么是源XML文档,以及需要转换为什么是需要的XML文档?为什么一个愿意回答的人必须猜测这些?请编辑您的问题并提供缺失的数据。 –