🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fr.comp.text.xml
Article #9571

[XSL] compter le nombre d'occurence d'un tag

#9571
From: Julien Balas
Date: Tue, 06 Mar 2001 15:41
55 lines
2614 bytes
salut,

j'ai un programme qui genere un fichier XML correspondant a un menu
deroulant
<menu titre="titre1" affiche="oui">
 <item>premier</item>
 <item>deuxieme</item>
</menu> 
<menu titre="titre1" affiche="oui">
 <item>premier</item>
 <item>deuxieme</item>
</menu> 
<menu titre="titre3" affiche="non">
 <item>premier-ter</item>
 <item>deuxieme-ter</item>
</menu> 

pour des raisons de presentation de ce menu dans un tableau HTML, j'ai
besoin de connaitre le nombre total de tag <menu> dont l'attribut
"affiche" est a OUI.
et j'aimerais pouvoir compter dans la feuille XSL

Pour l'instant comme j'utilise les composants DOM de microsoft, j'ai la
balise <xsl:script> qui me permet de mettre du code VB dans la feuille et
donc de parcourir mon arbre XML et de compter les noeuds.
Mais il semble que cette balise ne soit pas standard (ca m'aurait etonn�
de microsoft aussi)
Donc je cherche une solution plus portable.

en fait j'ai besoin de deux choses
- connaitre le nombre total de noeud "menu"
- savoir quel est la position du noeud "menu" sur lequel je me trouve

pour l'instant j'ai un code qui ressemble a ca
<xsl:template match="/">
  <xsl:for-each select="liste/menu">
   <xsl:for-each>
    <xsl:if test="affiche[.= 'OUI']">
       <xsl:eval>incremente_oui()</xsl:eval>
    </xsl:if>
   </xsl:for-each>
 </xsl:for-each>
<xsl:apply-templates/>
</xsl:template>

et la fonction increment_oui() qui ajoute 1 � une variable globale

Voila, si quelqu'un a une id�e ou une doc qui m'expliquerais comment
faire, qu'il n'hesite pas.
Sachant que ma feuille fonctionne tout a fait, mais que j'aimerais bien
faire ca de facon plus propre.

Merci
-- 
Julien Balas
Technical Details
Message-ID: <3AA50543.105976A1@ystel.com>
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!isdnet!inetway!inetway.net!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII
X-Google-Thread: 114f60,1304551a566271,start
X-Google-Attributes: gid114f60,public
X-Google-ArrivalTime: 2001-03-06 07:42:04 PST
Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!isdnet!inetway!inetway.net!not-for-mail
From: Julien Balas <julien.balas@ystel.com>
Newsgroups: fr.comp.text.xml
Subject: [XSL] compter le nombre d'occurence d'un tag
Date: Tue, 06 Mar 2001 16:41:55 +0100
Organization: UUNET
Lines: 55
Message-ID: <3AA50543.105976A1@ystel.com>
NNTP-Posting-Host: nat.ystel.fr
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: reader1.fr.uu.net 983894541 2136 194.98.73.186 (6 Mar 2001 16:02:21 GMT)
X-Complaints-To: abuse@fr.uu.net
NNTP-Posting-Date: 6 Mar 2001 16:02:21 GMT
X-Posting-Agent: Hamster/1.3.13.0
X-Mailer: Mozilla 4.72 [en] (WinNT; I)
X-Accept-Language: fr,en