xsl-list
[Top] [All Lists]

Re: [xsl] Rename Some Node and attribute

2006-10-16 08:01:19
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



--~------------------------------------------------------------------
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>
--~--