From: Dobbels Guillaume (dobbels.guillaume@sonycom.com)
Date: 14/05/2003 - 13:14
D'accord mais ce que je designe par 'type', n'a jamais la meme valeur
Si vous voulez, j'ai une liste d'identifiant (qui n'ont rien en commun
les uns des autres)
comme:
<a>toto</a>
<a>tutu</a>
<a>tata</a>
<a>tata</a>
<a>tutu</a>
<a>toto</a>
et je veux la liste des identifiants existants
comme:
<a>toto</a>
<a>tutu</a>
<a>tata</a>
Je doute que l'algorithme de Muench puisse resoudre ce pb, non?
Guillaume
Cyril Vidal wrote:
>
> Bonjour,
>
> Ceci est un problème classique de regroupement, dont une des solutions
> peut-être l'utilisation de l'algorithme de Muench, du nom de son auteur
> Steve Muench, basé sur xsl:key et generate-id().
>
> Pour une bonne introduction, voir notamment:
> http://www.jenitennison.com/xslt/grouping/muenchian.html
>
> Ici, on aura quelque chose du style:
>
> <xsl:key name="type" match="//C" use="."/>
> ....
>
> <xsl:for-each select="//C[generate-id(.) = generate-id(key('type', .) [1])]>
> <row><xsl:value-of select="."/></row>
> </xsl:for-each>
> ...
>
> - l'expression key('type', .) renvoie un ensemble de noeuds de type C de
> même contenu;
> - l'expression key('type', .)[1] renvoie le premier élément de cet ensemble;
> - l'expression generate-id(key('type',.)[1]) renvoie l'identifiant de ce
> premier élément
> et pour trouver tous les C qui sont en première position dans leur entrée
> d'index, on ne prend donc que ceux pour lesquels l'identifiant donné par
> generate-id() est égal au résultat de l'expression précédente, d'où
> l'expression un peu compliquée ;-)) suivante:
> //C[generate-id(.) = generate-id(key('type', .) [1])]
>
> Cordialement,
> Cyril.
> ----- Original Message -----
> From: "Dobbels Guillaume" <dobbels.guillaume@sonycom.com>
> To: <xml-tech@xmlfr.org>
> Sent: Tuesday, May 13, 2003 12:31 PM
> Subject: [xml-tech] Eviter la repetition d'elements
>
> >
> >
> > Bonjour,
> >
> > je vous transmets mon probleme en esperant que qq1 puisse me donner la
> > solution:
> >
> > Voici mon fichier xml a transformer:
> >
> > <A>
> > <B>
> > <C>type1</C>
> > </B>
> > <B>
> > <C>type2</C>
> > </B>
> > <B>
> > <C>type3</C>
> > </B>
> > <B>
> > <C>type2</C>
> > </B>
> > <B>
> > <C>type1</C>
> > </B>
> > <B>
> > <C>type...N</C>
> > </B>
> > </A>
> >
> > Et je voudrais obtenir uniquement les types non redondants dans une
> > table. Tous les types existants en fait. Sans connaitre au prealable les
> > differents types...
> >
> > -> <row>type1</row>
> > <row>type2</row>
> > <row>type3</row>
> > <row>type...N</row>
> >
> > Comment faire? D'avance merci!
> >
> > Guillaume
> > --
> > 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)
> >
> >
>
> --
> 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)
--
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:06 UTC
webmaster@xmlfr.org
|