From: Eric van der Vlist (vdv@dyomedea.com)
Date: 08/01/2001 - 07:09
Bonjour,
Herve AGNOUX wrote:
>
> Bonjour,
>
> Je voudrais pouvoir compter des éléments d'un document XML pour
> faire des traitements variés.
>
> Par exemple, s'il y a 50 éléments <INTERESSANT> dans mon doc
> XML, quelque soit leur position, je voudrais pouvoir afficher dans le
> fichier généré "Il y a 50 choses intéressantes".
Pour compter le nombre d'éléments "<INTERESSANT>" dans un document, il
suffit d'utiliser la fonction XPath "count()" [1] et d'écrire
"count(//INTERESSANT)"
> Autre exemple, je voudrais pouvoir mettre en bleu les dix premiers,
> en vert les 10 suivants, et ainsi de suite.
>
> Comment puis-je faire ?
La manière la plus simple -mais elle indique la position contextuelle
n'est applicable que si votre liste de noeuds courante correspond aux
éléments que vous comptez- est d'utiliser la fonction "position()" [2].
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() < 11]"> ...
Si vous ne pouvez pas utiliser la fonction position() (parce que vous
vous interessez à 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") < 10> ...
[1] http://xmlfr.org/w3c/TR/xpath/#function-count
[2] http://xmlfr.org/w3c/TR/xpath/#function-position
Cordialement,
Eric van der Vlist
> Merci.
>
> --
> Hervé AGNOUX hagnoux@mail.club-internet.fr
> Faites vos sites avec des formulaires electroniques :
> http://www.diaam.com
--
------------------------------------------------------------------------
Eric van der Vlist Dyomedea http://dyomedea.com
http://xmlfr.org http://4xt.org http://ducotede.com
------------------------------------------------------------------------
--
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:05 UTC
webmaster@xmlfr.org
|