Bonjour,
Je ne suis pas sûr d'avoir bien compris le problème. Mais voici quelques idées :
1ère idée :
=========
Plutôt que d'utiliser le template :
<xsl:template match="participe_a" priority="1">
...
Ne vous est-il pas possible d'insérer dans la XSL à l'endroit voulu :
<participe_a>
<xsl:for-each select="participe_a">
<refid><xsl:value-of select="@refid"/></refid>
</xsl:for-each>
</participe_a>
2ème idée :
=========
Si ce que vous voulez faire, c'est :
"pour chaque suite d'éléments <participe_a>, regrouper les attributs @refid dans un seul élément <participe_a>",
alors ce que vous avez fait peut marcher. Il vous suffit d'englober tout ce qu'il y a dans votre template par le test :
<xsl:if test="not(preceding-sibling::participe_a)">
...
</xsl:if>
Ainsi, ce qu'il y a dans le template n'est effectué que pour le premier élément <participe_a>
>>> "dupuis pp" <ppdupuis@hotmail.com> 07/12/04 10h24 >>>
bonjour,
j'ai le bloc suivant :
<root>
...
<exemple>
<participe_a refid="1"/>
<participe_a refid="2"/>
...
</exemple>
...
</root>
et j'aimerais arriver a ce bloc :
<root>
...
<exemple>
<participe_a>
<refid>1</refid>
<refid>2</refid>
</participe_a>
...
</exemple>
...
</root>
pour l'instant j'arrive a ca :
<root>
...
<exemple>
<participe_a>
<refid>1</refid>
<refid>2</refid>
</participe_a>
<participe_a>
<refid>1</refid>
<refid>2</refid>
</participe_a>
...
</exemple>
...
</root>
il me met plusieurs fois le tag <participe_a> (c ki est normal quand on voit
mon xsl) :
<!-- Reproduit tous les noeuds du document -->
<xsl:template match="@* | * | text()" priority="0">
<xsl:copy>
<xsl:apply-templates select="@* | * | text()"/>
</xsl:copy>
</xsl:template>
<!-- transformation sur les noeuds est_en_relation -->
<xsl:template match="participe_a" priority="1">
<participe_a>
<xsl:for-each select="../participe_a/@refid">
<xsl:element name = "refid" >
<xsl:value-of select="."/>
</xsl:element>
</xsl:for-each>
</participe_a>
</xsl:template>
le noeud exemple peut apparaitre plusieurs fois dans le document XML non
determiné a priori (peut etre autre chose que <exemple>)
ma question est donc comment faire pour n'avoir qu'une seule fois le noeud
<participe_a> (utilisation d'un compteur ? ou changer le xsl ? )
merci de vos reactions
PePe
_________________________________________________________________
MSN Messenger : discutez en direct avec vos amis !
http://www.msn.fr/msger/default.asp
--
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 Tue Dec 7 11:03:14 2004