[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Rename Some Node and attribute

Subject: Re: Rename Some Node and attribute
From: Davide Antoni <davide.antoni@xxxxxxxxxxx>
Date: Mon, 16 Oct 2006 17:00:52 +0200
Re:  Rename Some Node and attribute
Thanks.
But how to rename the node : RICHIESTA_PRESTAZIONI_EROGABILI into :ELENCO_PRESTAZIONI
inside this magic stuff?
My question is :
rename attribute idCup in idCUP
and rename nome RICHIESTA_PRESTAZIONI_EROGABILI to ELENCO_PRESTAZIONI


this is my input:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.standardcup.esel.it">
<soapenv:Body>
<ser:RICHIESTA_PRESTAZIONI_EROGABILI DataOra="10102005" idCup="1" idOperatore="1"/>
</soapenv:Body>
</soapenv:Envelope>


and i want this output:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://regione.campania.it/schemas/cup">
<soapenv:Body>
<ser:ELENCO_PRESTAZIONI DataOra="?" idCUP="?" idOperatore="?">
<ser:PRESTAZIONE/>
</ser:ELENCO_PRESTAZIONI>
</soapenv:Body>
</soapenv:Envelope>


Thanks.



Abel Braaksma ha scritto:
Davide Antoni wrote:
Hi to all

   <xsl:template match="*">
           <xsl:copy>
           <xsl:copy-of select="@*[name()!='idCup']"/>
           <xsl:if test="@idCup">
                   <xsl:attribute name="idCUP">
                       <xsl:value-of select="@idCup">
                       </xsl:value-of>
                   </xsl:attribute>
           </xsl:if>
           <xsl:apply-templates/>
       </xsl:copy>
   </xsl:template>

Why all the complex xsl:copy and xsl:copy-of intermingled with xsl:if? Make it yourself easier by applying the (in)famous copy-idiom. Try this as a complete replacement of your code and the magic of XSLT will do the work:


<xsl:template match="node( ) | @*">
 <xsl:copy>
   <xsl:apply-templates select="@* | node( )"/>
 </xsl:copy>
</xsl:template>

<xsl:template match="@idCup">
 <xsl:attribute name="idCUP">
   <xsl:value-of select="."/>
 </xsl:attribute>
</xsl:template>

Hope this helps,

Cheers
-- Abel Braaksma
  http://www.nuntia.com

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.