[XSLT] Probléme avec contains
Salut,
eh oui encore un probléme bizarre
je commence avec le code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <xsl:template match="struct">
<h3>
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="pageWeb" />
</xsl:attribute>
<xsl:value-of select="nom" />
</xsl:element>
</h3>
<p> <xsl:value-of select="description"/> </p>
<p> État du projet: <xsl:value-of select="etat"/> </p>
<p> la liste des personnes impliquées dans ce projet: </p>
<p>
<xsl:for-each select="document('personnes.xml')/mysql/database/table/fiche">
<xsl:if test="contains(struct/var[@name='implicationprojet'],nom)">
<li><xsl:value-of select="struct/var[@name='nom']"/></li>
</xsl:if>
</xsl:for-each>
</p>
</xsl:template> |
pour commencer, j'utilise document() parce que je travaille avec 2 fichiers XML. dans je cherche dans le 2eme fichier XML "personnes.xml" les personnes qui ont dans le champs implicationprojet : le 'nom' du noeud courant du fichier XML sur lequel je travaille dans mon XSL qui projets .
j'explique, si par exemple dans mon noeud actuel du fichier projets.xml , j'ai <nom>projet1</nom> , et que dans le 2eme fichier XML, je trouve dans implication projet la valeur 'projet1/projet2' , donc cette derniere chaine de caractere contient le 'nom' du noeud actuel du fichier XML principal ... j'essaye de faire ca avec le contains : "contains(struct/var[@name='implicationprojet'],nom)">
<li><xsl:value-of select="struct/var[@name='nom']"
mais le probléme c'est que ca rentre toujours dans ce if et ca m'Affiche tous les noms du fichiers personnes.xml , donc contains retourne toujours true , et je ne comprend pas pourquoi ?
merci
...