PDA

View Full Version : [XSL] Lasciare invariati dei tag in una trasformazione XML 2 XML


zebrone
04-02-2005, 09:03
Avrei bisogno di applicare un XSL a un file XML. Questo XSL deve lasciare tutti i tag invariati tranne uno che deve essere sostituito con del codice html. La parte che trasforma il codice è già pronto, ma non so come dire fare a lasciare il resto invariato.

Qualcuno sa darmi una mano? Ciao e grazie

theClimber
04-02-2005, 22:26
Ti serve un bel template identita', come il seguente:


<xsl:template match="*|@*|comment()|processing-instruction()|text()">
<xsl:copy>
<xsl:apply-templates select="*|@*|comment()|processing-instruction()|text()"/>
</xsl:copy>
</xsl:template>


Praticamente copia il nodo corrente e riapplica i template a tutto il contenuto. Se fai un match su un elemento o attributo specifico, la priorita' del template specifico e' maggiore e si applica al posto del template generico (dai un occhio alle priorita' e pesi della specifica XSLT)

Se non vuoi copiare commenti o processing instruction, le puoi rimuove dal match.

Ciao

theClimber
04-02-2005, 22:34
Aggiungo che il template identita' lo trovi anche nella specifica stessa:
http://www.w3.org/TR/xslt#copying

zebrone
05-02-2005, 16:31
Grazie mille! Infatti avevo notato che utilizzando il comando copy-of sul root tag mi copiava l'intero dicumento senza però applicarmi i match. Il problema quindi dovrei riuscire a risolverlo con le tue indicazioni, ciao e grazie ancora