Theoriquement, il suffirait d'utiliser l'algo appliqué à 'rubric' ,
mais cette fois ci avec 'content'.
Il serait peut etre plus simple de passer par une structure
intermediaire, ou alors de faire la manip dans un porgramme java.
Cordialement,
On 8/18/05, Jean-Baptiste Noel <JBNoel@interdoc.com> wrote:
> Presque, en fait, il manque le premier nœud "section" dans le résultat. <section> <name>section_1.xml</name>
> </section>
>
> Car la transformation retourne :
>
> <rubrics>
> <rubric>
> <name>End_User</name>
> <topic>
> <name>Arics</name>
> <content>
> <name>Chapter_1</name>
> <section>
> <name>xdql_content_Copy.xml</name>
> </section>
> </content>
> </topic>
> <topic>
> <name>BILL2000TM</name>
> <content>
> <name>Chapter_1</name>
> <section>
> <name>section_1.xml</name>
> </section>
> </content>
> </topic>
> </rubric>
> </rubrics>
>
> Si vous avez une autre suggestion !
> Merci
>
> -----Message d'origine-----
> De: xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org] De la part de Jean Luc COSSI
> Envoyé: Thursday, August 18, 2005 3:06 PM
> À: xml-tech@xmlfr.org
> Objet: [xml-tech] Re: Algorithme xslt
>
> Ci apres. Il y aurait peut être moyen d'optimiser:
>
> <xsl:key name="rubricKey" match="rubric" use="name"/>
>
> <xsl:template match="rubrics">
> <rubrics>
> <xsl:for-each select="key('rubricKey','End_User')[1]">
> <rubric>
> <xsl:copy-of select="name"/>
> <xsl:for-each select="key('rubricKey','End_User')">
> <xsl:if test="(/rubrics/rubric/name=name) and
> not(generate-id() = generate-id(/rubrics/rubric))">
> <xsl:copy-of select="topic"/>
> </xsl:if>
> </xsl:for-each>
> </rubric>
> </xsl:for-each>
> </rubrics>
> </xsl:template>
>
>
> Cordialement,
>
>
> On 8/18/05, Jean-Baptiste Noel <JBNoel@interdoc.com> wrote:
> > Bonjour,
> > J'aurais besoin de votre expertise algorithmique pour transformer un fragment xml dans une feuille de style xslt.
> >
> > Mon fragment xml est mal architecturé, il faudrait rassembler toutes les "sections" qui ont le meme parent, ici "content", tous les "contents" qui le meme parent
> >
> > ici "topic", tous les "topics" qui ont le meme parent, ici "rubtric".
> >
> > Voici le mauvais fragment :
> >
> > <rubrics>
> >
> > <rubric>
> >
> > <name>End_User</name>
> >
> > <topic>
> >
> > <name>Arics</name>
> >
> > <content>
> >
> > <name>Chapter_1</name>
> >
> > <section>
> >
> > <name>section_1.xml</name>
> >
> > </section>
> >
> > </content>
> >
> > </topic>
> >
> > </rubric>
> >
> > <rubric>
> >
> > <name>End_User</name>
> >
> > <topic>
> >
> > <name>Arics</name>
> >
> > <content>
> >
> > <name>Chapter_1</name>
> >
> > <section>
> >
> > <name>xdql_content_Copy.xml</name>
> >
> > </section>
> >
> > </content>
> >
> > </topic>
> >
> > </rubric>
> >
> > <rubric>
> >
> > <name>End_User</name>
> >
> > <topic>
> >
> > <name>BILL2000TM</name>
> >
> > <content>
> >
> > <name>Chapter_2</name>
> >
> > <section>
> >
> > <name>section_1.xml</name>
> >
> > </section>
> >
> > </content>
> >
> > </topic>
> >
> > </rubric>
> >
> > </rubrics>
> >
> >
> >
> > Evidement, vous remarquerez la faiblesse de ce fragment, idéalement, j'aimerais obtenir :
> >
> > <rubrics>
> >
> > <rubric>
> >
> > <name>End_User</name>
> >
> > <topic>
> >
> > <name>Arics</name>
> >
> > <content>
> >
> > <name>Chapter_1</name>
> >
> > <section>
> >
> > <name>section_1.xml</name>
> >
> > </section>
> >
> > <section>
> >
> > <name>xdql_content_Copy.xml</name>
> >
> > </section>
> >
> > </content>
> >
> > </topic>
> >
> > <topic>
> >
> > <name>BILL2000TM</name>
> >
> > <content>
> >
> > <name>Chapter_2</name>
> >
> > <section>
> >
> > <name>section_1.xml</name>
> >
> > </section>
> >
> > </content>
> >
> > </topic>
> >
> > </rubric>
> >
> > </rubrics>
> >
> >
> >
> > Merci pour votre aide.
> >
> >
> >
> > --
> > 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)
> >
> >
>
>
> --
> JLC
>
> --
> 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)
>
>
--
JLC
--
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)
Received on Fri Aug 19 10:32:54 2005