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)
Received on Thu Aug 18 22:34:52 2005