I would do this as:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" />
<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
<xsl:template match="address/*">
<xsl:element name="US_{local-name()}">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Mukul Gandhi [mailto:gandhi(_dot_)mukul(_at_)gmail(_dot_)com]
Sent: 14 September 2006 05:20
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] Element name Change for a node
Please try this stylesheet:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes" />
<xsl:template match="/address">
<address>
<xsl:apply-templates />
</address>
</xsl:template>
<xsl:template match="*[../self::address]">
<xsl:element name="{concat('US_', local-name())}">
<xsl:value-of select="." />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
This when applied to XML:
<address>
<streetAddress>123 First Street</streetAddress>
<city>Sometown</city>
<state>CA</state>
<zip>12345</zip>
<province/>
<country>USA</country>
</address>
Produces output:
<?xml version="1.0" encoding="UTF-8"?>
<address>
<US_streetAddress>123 First Street</US_streetAddress>
<US_city>Sometown</US_city>
<US_state>CA</US_state>
<US_zip>12345</US_zip>
<US_province/>
<US_country>USA</US_country>
</address>
On 9/14/06, Senthilkumaravelan Krishnanatham
<senthil(_at_)apple(_dot_)com> wrote:
Hi All,
I have the following structure in my XML and I want to
transform this
all "address" node content to prefix with "US".
Please let me how to create the XSL template for the given input.
Input
<address>
<streetAddress>123 First Street</streetAddress>
<city>Sometown</city>
<state>CA</state>
<zip>12345</zip>
<province />
<country>USA</country>
</address>
output
<address>
<US_streetAddress>123 First Street</US_streetAddress>
<US_city>Sometown</US_city>
<US_state>CA<US_/state>
<US_zip>12345</US_zip>
<US_province />
<US_country>USA</US_country>
</address>
I do not know how to create the XSL for it to transform.
Thanks for your help.
Regards,
Senthil
--
Regards,
Mukul Gandhi
http://gandhimukul.tripod.com
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--