XSL : Comparaison de noeud
loulous'
-
tartanpion -
tartanpion -
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...
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 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.
<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.