Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Si vous vous posez une question, vous n'êtes peut-être pas le premier...Les traductions en français des bibles XML.Ces articles sont des références dans leur domaine.Tout ce qu'il faut savoir pour démarrer sur un sujet XML...


XSLT supprime mes éléments

Pourquoi xsl:apply-templates ne garde t'il que le texte en supprimant les éléments ?

Eric van der Vlist, Dyomedea (vdv@dyomedea.com).
vendredi 2 février 2001

Lorsque j'applique des templates:

<xsl:apply-templates/>

le texte de mes éléments est recopié, mais pas leur structure, pourquoi ?

Ce n'est pas xsl:apply-templates qui convertit les nœuds en texte, mais les règles qui seront exécutées (et notamment les règles par défaut)!

Rappelons que les règles par défaut suivantes sont prédéfinies:

<xsl:template match="*|/"> 
 <xsl:apply-templates/> 
</xsl:template>

Cette règle applique les templates sur tous les noeuds textes ou éléments inclus dans le noeud contexte (racine ou élément).

et

<xsl:template match="text()|@*"> 
 <xsl:value-of select="."/> 
</xsl:template>

Celle-ci copie la valeur (texte) d'un noeud texte ou attribut.

Pour voir leur influence, appliquons sur un document simple comme celui-ci:

<?xml version="1.0" encoding="UTF-8"?>
<document>
        <element>un</element>
        <element>deux</element>
        <element>trois</element>
</document>

une transformation "vide" :

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        
</xsl:stylesheet>

Les règles par défaut permettent d'obtenir le résultat:

<?xml version="1.0" encoding="utf-8"?>
 
        un
        deux
        trois

Ce sont elles qui donnent l'impression que "apply-templates" réalise une conversion sous forme de texte.

On peut venir les "contrarier" à tout moment en définissant d'autres règles, par exemple:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:template match="element">
            <xsl:comment>Je prend la main</xsl:comment>
            <xsl:copy-of select="."/>
        </xsl:template>
</xsl:stylesheet>

donnera:

<?xml version="1.0" encoding="utf-8"?>
 
        <!--Je prend la main--><element>un</element>
        <!--Je prend la main--><element>deux</element>
        <!--Je prend la main--><element>trois</element>

et

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:template match="document">
                <xsl:comment>Je prend la main</xsl:comment>
                <xsl:copy-of select="."/>
        </xsl:template>
</xsl:stylesheet>

donnera:

<?xml
version="1.0" encoding="utf-8"?>
<!--Je prend la main--><document>
        <element>un</element>
        <element>deux</element>
        <element>trois</element>
</document>
Emmanuelle TRÉVAUX: "[xml-tech] impression d'éléments XML au moyen de XSL"Sébastien LANDEAU: "[xml-tech] RE: [xml-tech] impression d'éléments XML au moyen de XSL"Verachten Bruno: "[xml-tech] RE: [xml-tech] impression d'éléments XML au moyen de XSL"Eric van der Vlist: "[xml-tech] Re: impression d'éléments XML au moyen de XSL"

Copyright 2001, Eric van der Vlist.


 

Mots clés.



L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.


Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot  

Conception, réalisation et hébergement
Questions ou commentaires
  redacteurs@xmlfr.org