🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Nouveau probl�me de boucle

#8277
From: Alain Ketterlin
Date: Thu, 08 Nov 2001 15:27
53 lines
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>&#10;</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>&#10;</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-mail
References: <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"