xsl-list
[Top] [All Lists]

RE: [xsl] Element name Change for a node

2006-09-14 00:53:02
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>
--~--

<Prev in Thread] Current Thread [Next in Thread>