Bonjour,
Je souhaite faire une transformation d'un fichier XML vers un autre fichier XML grâce à une transformation XSL.
Dans mon fichier XML d'entrée, j'ai quelque chose du type :
Je souhaite récupérer la valeur de l'élément "info1" de l'attribut référencé dans mon élément "attribut2".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <body> <element1> <sous-element1> <attribut1> ... </attribut1> <attribut2 idRef="idAttRef2"/> </sous-element1> <sous-element2> ... </sous-element2> </element1> <_REFERENCED> <attributRef1 id="idAttRef1"> <info1>valeur1</info1> ... </attributRef1> <attributRef1 id="idAttRef2"> <info1>valeur2</info1> ... </attributRef1> ... </_REFERENCED>
J'ai définie une clé sur l'idRef, mais quand j'essaie de récupérer la valeur il me met la première valeur qu'il rencontre et non pas celle associée à l'id.
J'obtiens "valeur1" tout le temps.
Voici ce que j'ai codé :
Si quelqu'un a une idée, parce là vraiment je bloque.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <xsl:key name="idRefAtt" match="body/element1/sous-element1/attribut2" use="@idRef"/> <xsl:value-of select="key('idRefAtt',body/_REFERENCED/attributRef1/@id)/../../_REFERENCED/attributRef1/info1"/>
Merci d'avance!
Partager