我有一個xml文檔,其中一些元素有一個名稱空間,其他元素沒有。他們都需要命名空間,有些不同。元素具有我想要保留的屬性。向元素添加各種名稱空間
的XML:
<foo xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gco="http://www.isotc211.org/2005/gco" xsi:schemaLocation="http://www.isotc211.org/2005/gmd http://schemas.opengis.net/iso/19139/20060504/gmd/gmd.xsd" xmlns="http://www.isotc211.org/2005/gmd">
<bar y="2">
<baz z="3"/></bar>
<a-special-element n="8"/>
<another-special-element k="8"/>
</foo>
而XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="*">
<xsl:element name="{local-name()}" namespace="A" >
<xsl:copy-of select="attribute::*"/>
<xsl:apply-templates />
</xsl:element>
</xsl:template>
<xsl:template match="foo">
<xx:foo xmlns:xx="xx">
<xsl:apply-templates/>
</xx:foo>
</xsl:template>
<xsl:template match="a-special-element">
<B:a-special-element xmlns:B="B">
<xsl:apply-templates/>
</B:a-special-element>
</xsl:template>
<xsl:template match="another-special-element">
<C:a-special-element xmlns:C="C">
<xsl:apply-templates/>
</C:another-special-element>
</xsl:template>
</xsl:stylesheet>
這裏是輸出我想有:
<xx:foo xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gco="http://www.isotc211.org/2005/gco" xsi:schemaLocation="http://www.isotc211.org/2005/gmd http://schemas.opengis.net/iso/19139/20060504/gmd/gmd.xsd" xmlns="http://www.isotc211.org/2005/gmd"> <bar y="2">
<baz z="3"/>
</bar>
<B:a-special-element n="8"/>
<C:another-special-element k="4"/>
</xx:foo>
我檢查了這個線程,但那裏的「特殊要素」的財產已經被神奇地去除了。 Add a namespace to elements
我也有多個的xmlns:???在我想保留的foo中。
沒有名稱空間「A」聲明。如果聲明不排除任何前綴(),則應輸出未使用的前綴。 –
wst