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@xxxxxxxxxxxx> 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@xxxxxxxxx" (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@xxxxxxxxx
> (mailto:xml-tech-request@xxxxxxxxx?Subject=unsubscribe)
>
>
--
JLC
|
|