Cliquez ici.
Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

From: Ludovic Tant (ludovictant@yahoo.com)
Date: 06/03/2001 - 17:43


Bonjour à tous,

Lecteur depuis quelques semaines de la mailing list, je
sollicite votre aide, à défaut d'avoir
déjà pu aider quelqu'un.

Mon problème est le suivant: obtenir une liste d'années,
sans doublons (un équivalent de "select distinct").

Les années étant des éléments d'articles, eux-même éléments
de rubriques:
+-Rubrique1
 +- article1/2001
 +- article2/2000
 +- article3/1999
 +- article4/1998
+-RubriqueA
 +- articleA/2000
 +- articleB/1999
 +- articleC/1995

Fichier XML d'exemple::
<rubriques>
  <rubrique libelle="Rubrique1">
   
<article><annee>2001</annee><sujet>article1</sujet></article>
   
<article><annee>2000</annee><sujet>article2</sujet></article>
   
<article><annee>1999</annee><sujet>article3</sujet></article>
   
<article><annee>1998</annee><sujet>article4</sujet></article>
  </rubrique>
  <rubrique libelle="RubriqueA">
   
<article><annee>2000</annee><sujet>articleA</sujet></article>
   
<article><annee>1999</annee><sujet>articleB</sujet></article>
   
<article><annee>1995</annee><sujet>articleC</sujet></article>
  </rubrique>
</rubriques>

Le but étant d'avoir en sortie un tableau du style:

              1995 1998 1999 2000 2001
Rubrique1 art4 art3 art2 art1
RubriqueA artC artB artA

Pour celà, j'ai tenté ce genre de boucle pour parcourir les
années (pour afficher la ligne d'en-tête):
<tr>
  <td></td>
  <xsl:for-each select="rubriques/rubrique/article/annee">
  <xsl:sort select="self::annee" data-type="number"
order="ascending"/>
    <td><xsl:value-of select="self::annee"/></td>
  </xsl:for-each>
</tr>

Malheureusement, j'obtiens des doublons:
1995 1998 1999 1999 2000 2000 2001

Je suis parti sur une piste "je regarde dans le node-set
contextuel pour voir si je n'ai pas déjà affiché la date
courante (avec un preceding ou un preceding-sibling)".
Malheureusement, ce genre de recherche me retourne les
précédents dans le document XML et non dans le contexte.

D'où deux questions pratiques:
-comment faire pour circuler dans le node-set contextuel,
si on veut faire plus que des position(),last() ou count()?
-comment faire sinon pour afficher mon tableau? Suis-je
totalement à côté de la plaque en essayant de manipuler XSL
d'une manière "programmation avec des boucles partout" au
lieu de le faire dans "l'esprit XSL"?

Merci de votre aide, à tous.

/ludovic

__________________________________________________
Do You Yahoo!?
Get email at your own domain with Yahoo! Mail.
http://personal.mail.yahoo.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

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement