[xsl] Add namespace to element name itself

Subject: [xsl] Add namespace to element name itself
From: "V.Ramkumar" <v.ramkumar@xxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 18 Nov 2008 17:28:19 +0530
Hi List,

I am doing XML to XML Transformation using saxon9.

I have to add namespace to output XML name itself in transformation.

Not like, <pii xmlns="ce"> - This example found in list

I need like this <ce:pii>.

My input XML contains,
	<item-info>
		<jid>YFMIC</jid>
		<aid>1120</aid>
		<pii>S0740-0020(08)00080-4</pii>
		<doi>10.1016/j.fm.2008.04.010</doi>
		<copyright type="unknown" year="2008"/>
	</item-info>

Required output XML,
	<item-info>
		<jid>YFMIC</jid>
		<aid>1120</aid>
		<ce:pii>S0740-0020(08)00080-4</ce:pii>
		<ce:doi>10.1016/j.fm.2008.04.010</ce:doi>
		<ce:copyright type="unknown" year="2008"/>
	</item-info>

My XSL:
	<xsl:template match="*">
		<xsl:copy>
			<xsl:copy-of select="@*"/>
			<xsl:apply-templates/>
		</xsl:copy>
	</xsl:template>

	<xsl:template match="pii" priority="3">
		<xsl:element name="{local-name()}" namespace="ce">
			<xsl:apply-templates select="@*|node()" />
		</xsl:element>
	</xsl:template>
ect..
	</xsl:template>

Regards,
Ramkumar

Current Thread