Bonjour,

J'effectue une transformation d'un gros fichier XML + XSL -> nouveau XML.

C'est un très gros XML à la base et la transfo, même sur serveur la nuit en automatisé, prend bien 2 heures quand tout va bien. J'ai encore besoin d'ajouter de nouvelles transfos, y'a donc un moment où ça va devenir vraiment trop long.

Au niveau de l'organisation du xsl, j'ai déjà bcp optimisé, jonglant entre les variables, when et autres pour gagner du temps de traitement.

Pour gagner encore plus en vitesse de traitement, j'ai pensé qu'il y aurait peut-être qqchse à faire du côté de l'ordre des conditions.

Exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
<xsl:variable name="PremiereVariable">
 <xsl:if test="product[condition 1][condition 2][condition 3][condition 4]">
  <xsl:value-of select="dvd[condition 5][condition 6][condition 7][condition 8]"/>
 </xsl:if>
</xsl:variable>
 
<xsl:variable name="DeuxiemeVariable">
 <xsl:if test="product[condition 1B][condition 2B][condition 3B][condition 4B]">
  <xsl:value-of select="dvd[condition 5B][condition 6B][condition 7B][condition 8B]"/>
 </xsl:if>
</xsl:variable>
Est-ce qu'en changeant l'ordre des [conditions], on change qqchse ? Par exemple, il y aurait d'abord un test virtuel de la condition 1, si ok, on passe à la 2, puis 3 et enfin 4. Si la 1 n'est pas vérifiée, on saute immédiatement tout le code de la variable, sans aller jusqu'à la 4. Dans ce cas, l'idée serait de placer la condition la plus facile à tester et la plus souvent improbable en premier, et laisser pour la fin les conditions complexes avec des "preceding-sibling" et "contains" à rallonge.

A moins que la première condition testée soit la dernière de la chaîne ? Ou autre ?

Merci d'avance