Bonjour Olivier,
Cette solution ne fonctionne que si les noeuds MEANING et MODELE ne
contienent que du texte (xsl:value-of récupère le contenu textuel du
sous-arbre : concaténation des textes contenus)
<xsl:for-each
select="/OB/REPORT/STANDARD_REPORT/CUST_IN_DOC/CUST_IN_DETAIL">
<xsl:variable name="noeud_modele">
<xsl:value-of
select="IN_JFO_AML/JFO_AML/REVENUES/REVENUES_TAXATION/TERM/MODELE"/>
</xsl:variable>
<xsl:for-each
select="previous-sibling::CUST_IN_DETAIL[IN_JFO_AML/JFO_AML/REVENUES/REVENUES_TAXATION/TERM/MODE
LE][IN_JFO_AML/JFO_AML/DEPARTURE/DEP_PLATFORM/MEANING=current()IN_JFO_AML/JFO_AML/DEPARTURE/DEP_PLATFORM/MEANING]/">
<veh>
<xsl:value-of select="$noeud_modele"/>
</veh>
</xsl:for-each>
</xsl:for-each>
J'attire ton attention sur le fait qu'un xsl, il vaut mieux exploiter le
mécanisme de <xsl:templates match="">.. plutot que des for-each
(pourquoi faire explicitement ce que le processeur fait implicitement)
Stéphane.
Le lundi 07 février 2005 à 14:58 +0100, CATTEAU Olivier a écrit :
> Bonjour,
>
> Je débute en XSL et j'ai une question qui ne semble pas très compliquée à
> première vue.
> J'ai un ensemble de noeuds CUST_IN_DETAIL qui contiennent des sous-noeuds
> et, dans ces sous-noeuds, j'ai 2 noeuds qui m'intéressent : MEANING et
> MODELE
> Je boucle sur les noeuds correspondant à CUST_IN_DETAIL. Sur chacun d'eux,
> je souhaite récupérer 2 données que je stocke noeud_ptf et noeud_modele.
> Ensuite, je cherche à récupérer tous les noeuds précédents (de type
> CUST_IN_DETAIL) qui ont pour enfants les noeuds
> IN_JFO_AML/JFO_AML/REVENUES/REVENUES_TAXATION/TERM/MODELE (j'utilise
> preceding-sibling) mais en plus j'aimerais que ces noeuds soient tels que
> leur sous-noeud MEANING soit égal à $noeud_ptf.
>
> Pour illustrer cela, voilà le code :
> <xsl:template name="getVEH">
> <xsl:param name="ptf"/>
> <xsl:for-each
> select="/OB/REPORT/STANDARD_REPORT/CUST_IN_DOC/CUST_IN_DETAIL">
> <xsl:variable name="noeud_ptf">
> <xsl:value-of
> select="IN_JFO_AML/JFO_AML/DEPARTURE/DEP_PLATFORM/MEANING"/>
> </xsl:variable>
> <xsl:variable name="noeud_modele">
> <xsl:value-of
> select="IN_JFO_AML/JFO_AML/REVENUES/REVENUES_TAXATION/TERM/MODELE"/>
> </xsl:variable>
>
> <xsl:if test="not($noeud_modele =
> preceding-sibling::*/IN_JFO_AML/JFO_AML/REVENUES/REVENUES_TAXATION/TERM/MODE
> LE)
> $noeud_ptf = $ptf">
> <veh>
> <xsl:value-of
> select="$noeud_modele"/>
> </veh>
> </xsl:if>
> </xsl:for-each>
> </xsl:template>
>
> Quelqu'un voit-il comment ajouté la condition "MEANING = $noeud_ptf" ?
> Merci
>
> Olivier
>
>
>
>
>
>
>
>
>
> ----------------------------------------------------------------------------
> Ce message ainsi que toutes pièces jointes (le "message") sont confidentiels
> et sont exclusivement destinés à l'usage de la personne à laquelle ils sont
> adressés. Tout point de vue ou toute opinion contenus dans ce message
> expriment la pensée personnelle de leur auteur et ne représentent pas
> nécessairement la position des sociétés du Groupe GEFCO. Si vous n'êtes pas
> la personne à laquelle ce message est destiné, veuillez noter que vous avez
> reçu cet e-mail par erreur et qu'il vous est strictement interdit
> d'utiliser, de diffuser, de transférer, d'imprimer ou de copier ce message.
> Si vous avez reçu ce message par erreur, merci de contacter la personne qui
> vous l'a adressé et de l'effacer immédiatement. Les sociétés du Groupe GEFCO
> déclinent toute responsabilité en cas d'altération, de modification,
> d'édition, de diffusion sans autorisation de ce message ou en cas
> d'affection de ce message par un virus.
>
> This message and any attachments (the "message") are confidential and
> intended solely for the use of the individual to whom they are addressed.
> Any views or opinions presented are solely those of the author and do not
> necessarily represent those of the GEFCO Group of Companies. If you are not
> the intended recipient, be advised that you have received this email in
> error and that any use, dissemination, forwarding, printing, or copying of
> this message is strictly prohibited. If you have received this message in
> error please contact the sender and delete the message immediately. The
> GEFCO Group of Companies shall not be liable for the message if altered,
> changed, falsified, edited, diffused without authorization or affected by
> any virus.
> ----------------------------------------------------------------------------
>
> --
> 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)
>
>
--
Stéphane Bonhomme -- Exselt Services
Formations, Conseil et Réalisations en Ingénierie Documentaire,
Technologies Web et Logiciels Libres
s.bonhomme@wanadoo.fr - http://www.exselt.com
04 76 17 09 40 / 06 88 57 27 08
--
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 Feb 8 11:38:02 2005