Re: [xsl] Element name Change for a node

Subject: Re: [xsl] Element name Change for a node
From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx>
Date: Thu, 14 Sep 2006 09:50:27 +0530
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

Current Thread