Article View: fr.comp.text.xml
Article #9572Re: [XSL] compter le nombre d'occurence d'un tag
From: Tom.
Date: Tue, 06 Mar 2001 17:46
Date: Tue, 06 Mar 2001 17:46
57 lines
3240 bytes
3240 bytes
In <3AA50543.105976A1@ystel.com>, Julien Balas wrote: > <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. Premi�rement, mise au point sur le langage. "tag" <=> balise. La _balise_, c'est ce que tu �cris dans ton fichier : <menu> est la _balise ouvrante_ de l'�l�ment menu (ici sans attribut), </menu> en est la _balise fermante_. Ces balises servent � d�crire un arborescence dont les noeuds seront des _�l�ments_ (mais aussi des noeuds d'attribut, d'espace de nommage [namespace], de texte, de commentaire, d'instruction de traitement [processing instruction], et ce sera tout pour XPath/XSLT). > et j'aimerais pouvoir compter dans la feuille XSL 1. s�lectionner ces noeuds : //menu[@affiche='oui'] par exemple mais �a d�pendra du noeud contextuel. 2. compter le nombre de noeuds obtenus : count(//menu[@affiche='oui']) > 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. "XML in a nutshell" contient un passage sur le "vieux" MSXML : �Good XSLT developers don't use http://www.w3.org/TR/WD-xsl or associate with developers who do.� et j'abonde dans ce sens. Un conseil : installe MSXML3 <http://msdn.microsoft.com/xml> et conforme-toi � la norme en vigueur <http://www.w3.org/TR/xslt> > en fait j'ai besoin de deux choses > - connaitre le nombre total de noeud "menu" count([expression pour s�lectionner tous les �l�ments menu]) > - savoir quel est la position du noeud "menu" sur lequel je me trouve position(), dans le cas o� la liste de noeud courante contient tous les �l�ments menu et uniquement eux. Sinon compter le nombre de �l�ments menu pr�c�dent le noeud courant : count(preceding-sibling::menu) par exemple Tom.
Technical Details
Message-ID:
<5o9p6.1224$2e4.2364447@nnrp5.proxad.net>Path:
arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!news.tele.dk!193.251.151.101!opentransit.net!proxad.net!feeder2.proxad.net!nnrp5.proxad.net.POSTED!not-for-mailReferences:
<3AA50543.105976A1@ystel.com>Show Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII X-Google-Thread: 114f60,1304551a566271 X-Google-Attributes: gid114f60,public X-Google-ArrivalTime: 2001-03-06 09:46:42 PST Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!news.tele.dk!193.251.151.101!opentransit.net!proxad.net!feeder2.proxad.net!nnrp5.proxad.net.POSTED!not-for-mail From: Tom. <ptittom+news@free.fr> Subject: Re: [XSL] compter le nombre d'occurence d'un tag Newsgroups: fr.comp.text.xml References: <3AA50543.105976A1@ystel.com> Lines: 57 Organization: - MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8Bit Message-ID: <5o9p6.1224$2e4.2364447@nnrp5.proxad.net> Date: Tue, 06 Mar 2001 17:46:41 GMT NNTP-Posting-Host: 193.252.183.30 X-Complaints-To: abuse@proxad.net X-Trace: nnrp5.proxad.net 983900801 193.252.183.30 (Tue, 06 Mar 2001 18:46:41 CET) NNTP-Posting-Date: Tue, 06 Mar 2001 18:46:41 CET