From: Cyril Jandia (cjandia@logfi.fr)
Date: 05/07/2002 - 07:27
> De : noel.jean-baptiste@courrier.uqam.ca
> À : xml-tech@xmlfr.org
> Objet : [xml-tech] Re: Expression Xpath, pour Cyril Jandia
>
> Bonjour,
> Je vous remercie encore pour l'algo, je voulais juste savoir pourquoi
> un deuxième appel récursif.
> Je l'ai mis en commentaire, et ca marche aussi.
Tout à fait ("bien vu" de votre part).
Mais... ce n'est bien sûr pas "par hasard" (comme tt informaticien *doit* s'en
douter ;=) - car ce que vous avez constaté là s'explique par un choix de
conception "assez fort" de la part de XSLT : celui d'appliquer *par défaut* des
[rêgles modèles internes] (1) - et en particulier sur le test de type de noeud
"*" (i.e, "tout élément") :
<xsl:template match="*|/">
<xsl:apply-templates/>
</xsl:template>
[...]
<xsl:template match="text()|@*">
<xsl:value-of select="."/>
</xsl:template>
Cela dit, eh bien, disons que mon <xsl:apply-templates /> était présent surtout
pour des préoccupations de l'ordre de l'écriture d'un code un tant soit peu
"auto-documenté"...
... Je veux dire par là, qu'en l'occurrence, cela ne faisait pas de mal : étant
donné que le problème posé se concentrait sur les noeuds de type élément (en
ignorant les noeuds texte, à priori) cet <xsl:apply-templates /> avait donc pour
effet d'avoir une sémantique strictement équivalente (2) à ces [rêgles modèles
internes] lorsqu'elles sont appliquées (par défaut, par définition).
> Rappel:
> [...]
> Djibi
(1: "un choix assez fort"... et tout à fait justifié et clairvoyant de la part
des concepteurs de XSLT apparemment : car bien utile en pratique comme nous le
remarquons présentement dans votre cas ;=)
(2:
dans ce contexte *particulier* du problème du moins, CQFD ;=)
[rêgles modèles internes] XSLT 1.0 :
http://xmlfr.org/w3c/TR/xslt#built-in-rule
Cordialement,
--CJ
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|