Salut,

eh oui encore un probléme bizarre

je commence avec le code

Code : 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
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



...