Bonjour,
Il y'a un problème avec le fonctionement actuel de get-param.
voici l'expresssion que cette fonction utilise pour récupérer les
paramètres :
if (contains(substring-before($doc, ':'),$name)) then
normalize-space(substring-after($doc, ':'))
else
Le problème est le suivant, si j'ai en entré nodeName:Unnom
(contains(substring-before($doc, ':'),$name)) avec $name =
"node" renvoie vrai !!!!! et c'est le mauvais paramètre qui est pris et
qui écrase
celui recupéré auparavent.
Une solution simple est de remplacer "contains" par une égalité stricte
( = ou stringEquals).
Cette solution nécéssite de modifier la manière de selectioner un
paramètre. En effet
le xpath d'entré est de la forme obl.*:*,obl.*:*,obl.*:*,obl.*:*
le séparateur est ",obl." (virgule + obl + point)
Pour récuperer la séquence de paramètre:valeur on utilise un tokenize(xpath,separateur).
tout les élements d'indince supérieur à 1 sont bien décomposés, le
premier lui reste obl.*:
Un contains permet de pouvoir néanmoins recuperer la valeur, mais une
égalité stricte ne poura pas.
C'est pourquoi, afin de ne pas pertuber le comportement précédent ,
j'ai dupliquer la fonction "getParam"
que j'ai renomé en "getParamStrict".
Pour pouvoir recuperer la totalité des paramètre en utilisant la
version Strict, il faut rajouter
avant le "tokenize" concat(',',$_xpath) => on ajoute une "," en
première position du xpath afin d'avoir tout
les paramètre efctivement entouré d'un ",obl.".
il y'aura dorénavant deux fonctions disponibles pour recuperer les
paramètres : getParam, et getParamStrict
Avez vous des remarques à faire ?