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 :
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>
Je souhaite récupérer la valeur de l'élément "info1" de l'attribut référencé dans mon élément "attribut2".
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é :
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"/>
Si quelqu'un a une idée, parce là vraiment je bloque.
Merci d'avance!