Bonjour à tous !

J'ai une XSLT qui s'exécute sur un très gros fichier XML et je dois faire un for-each sur un élément dont l'identifiant peut être multiple. Comme c'est pas clair je vais mettre tout de suite un exemple ^^

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<xsl:variable name ="TS_ids" select ="/export/business_process.realized_by[@domain=$BP_id]/@range"/>
 
<xsl:when test="/export/technical_system[@id=$TS_ids]">
        <xsl:for-each select ="/export/technical_system[@id=$TS_ids]">
 
Etc.
Donc en gros je récupère tous les identifiants des TS qui réalisent un BP. Ma variable TS_ids, pour mon test, a 5 dimensions (donc j'ai 5 identifiants).
Mais lorsque je fais mon for-each, il ne passe que sur la première valeur.

Si je met le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
<xsl:when test="/export/technical_system[@id=/export/business_process.realized_by[@domain=$BP_id]/@range]">
        <xsl:for-each select ="/export/technical_system[@id=/export/business_process.realized_by[@domain=$BP_id]/@range]">
Donc en court-circuitant la variable, il passe bien sur les 5 identifiants, mais est vraiment très très lent (forcément).

Bref, est-ce que quelqu'un aurait une solution s'il vous plait ?