Subject: RE: Element name Change for a node
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 14 Sep 2006 08:52:26 +0100
|
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.mukul@xxxxxxxxx]
> Sent: 14 September 2006 05:20
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: 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@xxxxxxxxx> 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
|