XSL : Comparaison de noeud

Fermé
loulous' - 31 août 2007 à 10:14
 tartanpion - 10 oct. 2008 à 12:51
Bonjour a tous
Je cherche a comparer la valeur textuelle d'un noeud avec la valeur textuelle du noeud qui le précede :

Code :

<result>
<search_engine>Voila FR : Web mondial</search_engine>
<keyword>univers ioma</keyword>
<URL>http://www.ioma.fr</URL>
<position>0</position>
<page>0</page>
<title></title>
</result>

<result>
<search_engine>Wanadoo FR : Web mondial</search_engine>
<keyword>univers ioma</keyword>
<URL>http://www.ioma.fr</URL>
<position>0</position>
<page>0</page>
<title></title>
</result>

Plus exactement je suis dans une boucle for-each qui parcours les noeud <result>et je cherche à comparer la valeur textuelle du noeud <search_engine> avec la valeur textuelle du noeud <search_engine> précédent et à executer un code si celui ci est différent.

Voici mon code XSL :

Code :

<xsl:if test="not(preceding::result[position()-1]/search_engine = search_engine)">
CODE A EXECUTER SI LES NOEUD SONT DIFFERENTS
</xsl:if>


Voila, mais ca ne marche pas .... qqun sait-il pourquoi ?
Merci d'avance...

2 réponses

Je rencontre le même soucis, toute aide est la bienvenue .... ;)
0
je te conseil d'essayer en mettant la valeur du search_engine sur lequel tu es (donc le deuxième) dans une variable et de faire ca pour ton <xsl:if>

<xsl:if test="not(preceding::result[1]/search_engine = $mavariable_pour_search_engine)">
CODE A EXECUTER SI LES NOEUD SONT DIFFERENTS
</xsl:if>

sinon avoir ton for-each complet aurait aidé un peu plus.
0