Cliquez ici.
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.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

From: Eric van der Vlist (vdv@dyomedea.com)
Date: 07/01/2004 - 12:23


Bonjour,

On Wed, 2004-01-07 at 13:08, Alexandre Arcouteil wrote:
> (Bonne année tout le monde)
>
> Je cherche, pour un noeud quelconque, à capturer son chemin depuis le
> noeud racine.
>
> Pour l'instant j'utilise un template de ce genre :
>
> <xsl:template match="*">
> <chemin>
> <xsl:for-each select="ancestor::node()[name() != '']">/<xsl:value-of
> select="name()"/></xsl:for-each>
> </chemin>
> </xsl:template>

Pour éviter le [name() != ''], tu peux utiliser "*" au lieu de node :

<xsl:for-each select="ancestor::*">/<xsl:value-of
select="name()"/></xsl:for-each>

Ton template n'identifiera pas le noeud mais son parent (si tu veux
identifier le noeud il fait utiliser ancestor-or-self

Note que c'est insuffisant pour identifier le noeud dans le document de
manière non ambiguë : dans le document

<foo>
  <bar/>
  <bar/>
</foo>

les deux noeuds "bar" ont le même chemin ("/foo/bar").
    
> Cela est bien sympathique, mais j'aurai aimé pouvoir utiliser (à la
> place du 'for-each') directement l'expression XPath dans quelque chose
> qui ressemble à cela :
>
> <xsl:value-of select="ancestor::node()"/>
>
> Le résultat n'est pas celui attendu (au mieux une chaîne vide, au pire,
> une sorte de copie du document entier), c'est surement normal,

Oui, <xsl:value-of/> donne la valeur du contenu du premier noeud de la
liste de noeuds sélectionnée converti en texte...

> mais au
> final je n'ai pas de solution pour indexer des node() en fonction de
> leur chemin depuis la racine.

Non, effectivement.

> Idéalement, j'aurais aimé pouvoir définir une clef de ce style :
>
> <xsl:key match="node()" use="ancestor::node()"/>

Je ne suis pas certain du résultat que tu veux obtenir, mais tel que je
le comprend, je pense que tu es coincé (il va falloir faire autrement)!

Eric

-- 
Have you ever thought about unit testing XSLT templates?
                                                     http://xsltunit.org
Upcoming XML schema languages tutorial:
 - Santa Clara  -half day- (15/03/2004)        http://masl.to/?J24916E96
------------------------------------------------------------------------
Eric van der Vlist       http://xmlfr.org            http://dyomedea.com
(ISO) RELAX NG   ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------

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

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement