Bonjour Stéphane,
On ven, 2005-04-15 at 16:58 +0200, Stephane Bonhomme wrote:
> Je dirais :
> '[' .
> $_->findvalue('count(./preceding-sibling::*[name()=name(current())]) +
> 1') . ']'
>
> J'etais en train d'essayer de faire le meme en xslt, j'arrive à ça :
>
> <xsl:template name="xpath">
> <xsl:for-each select="ancestor-or-self::*">
> <xsl:text>/</xsl:text>
> <xsl:value-of select="name()"/>
> <xsl:if test="count(ancestor::*)">
> <xsl:text>[</xsl:text>
> <xsl:value-of select="1
> +count(preceding-sibling::*[name()=name(current())])"/>
> <xsl:text>]</xsl:text>
> </xsl:if>
> </xsl:for-each>
> </xsl:template>
>
> (avec le raffinnement de la racine :)
>
> Par contre je me pose une question : cela ne arche que pour les
> élements, je voudrait améliorer mon template pour qu'il fonctionne pour
> les noeuds texte, comment, PI et attributs, il est facile de detecter
> que le noeud courant est text(), comment(), processing-instruction(),
> mais comment tester si le noeud courant est un attribut ? et comment
> récupérer le nom de cet attribut ?
Personnellement, je ne coderais pas cela sous forme d'un template nommé,
mais d'un template "classique" avec un mode "xpath".
Ce n'est pas plus difficile à appeler et cela te permet de tester le
type de noeud dans l'attribut match...
Mes 0,02 ¤
Eric
> >
--
Read me on XML.com.
http://www.xml.com/pub/au/74
------------------------------------------------------------------------
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)
Received on Fri Apr 15 17:05:00 2005