Bonjour,

je me permets de vous demander votre aide concernant un problème "bizarre" de lenteurs à l'utilisation des balises <x:set>.
J'utilise la taglib http://java.sun.com/jsp/jstl/xml dans des pages JSP2 pour afficher des éléments d'un fichier XML parsé en mémoire (jusque là normal).
J'utilise un serveur tomcat, Java 5, comme indiqué dans la doc je charge xalan dans un JAR dans WEBINF/lib.
Voici ce que je constate : le fichier est bien parsé à une vitesse "normale", par contre quelle que soit la taille du fichier, l'utilisation de <x:set> ou <x:out> met un temps "non négligeable" (de l'ordre de 20ms). Le problème est que je l'appelle plusieurs centaines de fois, selon la taille du fichier XML en mémoire la page peut mettre longtemps voire très longtemps à s'afficher. Pour pallier plus ou moins cela j'utilise le moins de balises possibles, avec des expressions telles que celle-ci :
Code xml : 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
 
<x:set
  var="tmp"
  select=
  "
    concat
    (
      string($droitLanceur/@typgen),
      '|',
      string($droitLanceur/@cdtrans),
      '|',
      string($droitLanceur/@lbtrans),
      '|',
      string($droitLanceur/@dtexp)
    )
  "
/>
(Je splitte ensuite le résultat)

Ce qui est vraiment bizarre c'est qu'en faisant ça j'augmente les perfs de manière notable. En fait une expression "compliquée" comme celle ci-dessus n'est pas plus longue à évaluer qu'une expression toute simple. Ce qui me fait penser que c'est l'appel à la balise x:set qui est long et pas l'évaluation de l'expression.

Voilà j'ai bien conscience que le problème est complexe et pas forcément décrit très clairement, mais n'hésitez surtout pas à me demander des précisions!

Je vous remercie par avancer pour votre aide