Article View: fr.comp.text.xml
Article #8277Re: Nouveau probl�me de boucle
From: Alain Ketterlin
Date: Thu, 08 Nov 2001 15:27
Date: Thu, 08 Nov 2001 15:27
53 lines
2684 bytes
2684 bytes
"Fr�d�ric Facca" <frederic.facca@rii-diffusion.fr> writes:
> Je tiens � vous posez un nouveau probl�me que je rencontre pour boucler sur
> des sous-noeuds.
> Voici mon fichier xml :
> <auteurs>
> <id_auteur>00001<id_auteur>
> <nom_auteur>Camus<nom_auteur>
> <note_auteur>xxxxxx<note_auteur>
> <id_auteur>00002<id_auteur>
> <nom_auteur>Zola<nom_auteur>
> <note_auteur>yyyyyyy<note_auteur>
> <auteurs>
>
> Je souhaiterais afficher uniquement les id_auteur et les nom_auteurs comme
> ci-dessous :
> 00001 Camus
> 00002 Zola
Voir les autres reponses pour des remarques pertinentes. Voici une
variante a base de for-each :
<xsl:for-each select="id_auteur">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
<xsl:value-of select="following-sibling::nom_auteur"/>
<xsl:text> </xsl:text>
</xsl:for-each>
L'avantage ? Euh... Ah si : si il y a plusieurs <nom_auteur> apres un
<id_auteur>, seul le premier est utilise et la mise en forme n'est pas
detruite (ce qui n'est pas forcement dans les autres solutions).
Par contre, si il y a plusieurs <id_auteur> sans <nom_auteur>, alors
ca foire (le premier chope le nom de l'auteur du deuxieme). Dans ce
cas :
<xsl:for-each select="id_auteur">
<xsl:value-of select="."/>
<xsl:if test="name(following-sibling::*[1])='nom_auteur'">
<xsl:text> </xsl:text>
<xsl:value-of select="following-sibling::nom_auteur"/>
</xsl:if>
<xsl:text> </xsl:text>
</xsl:for-each>
Si ton fichier est toujours correct, oublie ce que je viens d'ecrire.
Au fait, le test peut se reecrire
following-sibling::*[1]/self::nom_auteur (ce n'est pas si frequent de
trouver une utilite a l'axe self).
-- Alain.
Technical Details
Message-ID:
<wyhes51dw0.fsf@polya.u-strasbg.fr>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!cyclone.bc.net!newsfeed.online.be!isdnet!ciril.fr!news.u-strasbg.fr!not-for-mailReferences:
<9se4o5$1os$1@s1.read.news.oleane.net>Show Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII X-Google-Thread: 114f60,a27d37f7d327f922 X-Google-Attributes: gid114f60,public X-Google-ArrivalTime: 2001-11-08 08:16:23 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!cyclone.bc.net!newsfeed.online.be!isdnet!ciril.fr!news.u-strasbg.fr!not-for-mail From: Alain Ketterlin <alain@dpt-info.u-strasbg.fr> Newsgroups: fr.comp.text.xml Subject: Re: Nouveau probl�me de boucle Date: 08 Nov 2001 16:27:43 +0100 Organization: CRC - Universite Louis Pasteur Strasbourg France Lines: 53 Message-ID: <wyhes51dw0.fsf@polya.u-strasbg.fr> References: <9se4o5$1os$1@s1.read.news.oleane.net> NNTP-Posting-Host: polya.u-strasbg.fr X-Trace: news.u-strasbg.fr 1005241019 22212 130.79.44.199 (8 Nov 2001 17:36:59 GMT) X-Complaints-To: usenet@u-strasbg.fr NNTP-Posting-Date: 8 Nov 2001 17:36:59 GMT X-Newsreader: Gnus v5.6.45/XEmacs 21.1 - "Capitol Reef"