j'utilise XSLT pour transformer du XML en HTML.
Pour expliquer simplement mon cas sous la forme d'un exemple :
- je parcours une liste de valeurs avec certains attributs qui sont des ID faisant référence à un autre fichier XML (sorte de clé étrangère SQLement parlant)
- pour récupérer le libellé correspondant à ma clé, j'utilise la synthaxe XSLT suivante :
ça marche très bien mais niveau performance sur un fichier avec plusieurs centaines de valeur, ça craint.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<xsl:value-of select="$monFichier//*[local-name() = 'CodeLists']/*[local-name()='CodeList' and contains(@id, 'MA_table')]/*[local-name() = 'MonCode' and @value = $mavaleur]/*[local-name() = 'Libellé']" />
- je chercherais donc à placer en haut de mon fichier XSL tous les tuplés de ma "table étrangère" dans une variable de type 'array' de la façon suivante
et d'y accéder dans chaque élément de ma liste comme un tableau indexé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<xsl:variable name="montableau1" select="$monFichier//*[local-name() = 'CodeLists']/*[local-name()='CodeList' and contains(@id, 'MA_table')]"/>
- sauf que je ne trouve pas ce type de syntaxe pour XSLT. Est-ce que cela est possible ? si oui comment ? et sinon comment résoudre mon problème de performance ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<xsl:value-of select="$tableau1[$mavaleur]" />
par avance merci pour vos réponses
Partager