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


Compter des elements avec XSLT.

Je voudrais pouvoir compter des éléments d'un document XML pour faire des traitements variés avec XSLT?

Eric van der Vlist, Dyomedea (vdv@dyomedea.com).
lundi 8 janvier 2001

Par exemple, s'il y a 50 éléments <INTERESSANT> dans mon document XML, quelque soit leur position, je voudrais pouvoir afficher dans le fichier généré "Il y a 50 choses intéressantes".

Autre exemple, je voudrais pouvoir mettre en bleu les dix premiers, en vert les 10 suivants, et ainsi de suite.


Pour compter le nombre d'éléments "<INTERESSANT>" dans un document, il suffit d'utiliser la fonction XPath "count()" et d'écrire:

count(//INTERESSANT)

Pour faire un traitement spécifique sur les dix premiers éléments, la manière la plus simple -mais elle indique la position contextuelle et n'est applicable que si votre liste de noeuds courante correspond aux éléments que vous comptez- est d'utiliser la fonction "position()".

Si par exemple vous effectuez une sélection sur les noeuds "<INTERESSANT>" :

<xsl:apply-templates select="//INTERESSANT"...

Vous pourrez écrire:

<xsl:template match="INTERESSANT[position() &lt; 11]"> ...

Si vous ne pouvez pas utiliser la fonction position() (parce que vous vous intéressez à la position dans le document et non à la position contextuelle), vous devrez utiliser la fonction count() pour compter les éléments "INTERESSANT" précédant le noeud courant dans le document en utilisant l'axe "preceding" :

<xsl:template match="count(preceding::INTERESSANT") &lt; 10> ...
[xml-tech] xslt : compter des elements[xml-tech] Re: xslt : compter des elements[xml-tech] position()[xml-tech] Re: position()[xml-tech] Re: position()[xml-tech] Re: position()

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