[XSLT] comment comparér la valeur de deux attributs
Bonjour;
j'ai un petit fichier xml qui est :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
<bd>
<villes>
<ville nomV="Abbeville" numD="80"/>
<ville nomV="La Gacilly" numD="56"/>
<departements>
<departement numD="14" nomD="Calvados"/>
<departement numD="56" nomD="Morbihan"/>
</departements>
</bd> |
Je souhaite comparer de l'attribut numD de l'élément <ville> avec la valeur de l'attribut numD de l'élément <departement>
J'ai essayé le code xsl suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
<xsl:variable name="villes"> <xsl:value-of select="bd/villes/ville@numD"/> </xsl:variable>
<xsl:variable name="depts"><xsl:value-f select="bd/departements/departement@numD"/></xsl:variable>
<xsl:for-each select="/">
<xsl:if test="$villes=$depts">
<tr>
<td><xsl:value-of select="bd/villes/ville@nomV"/></td>
<td><xsl:value-of select="bd/villes/ville@numD"/></td>
<td><xsl:value-of select="bd/departements/departement@numD"/></td>
</tr>
</xsl:if>
</xsl:for-each> |
J'ai essayé aussi avec la balise xsl:if seul
Code:
1 2 3 4 5 6 7 8
|
<xsl:for-each select="/">
<xsl:if test=bd/villes/ville@numD=bd/departements/departement@numD >
<td><xsl:value-of select="bd/villes/ville@nomV"/></td>
<td><xsl:value-of select="bd/villes/ville@numD"/></td>
<td><xsl:value-of select="bd/departements/departement@numD"/></td>
</xsl:if>
</xsl:for-each> |
Mais malheureusemnt, celà fait des heures que je tente avec différentes combines pour comparer ces deux attributs de deux différents élements, le navigateur me renvoie toujours une erreur dans mon code xsl.
Quelqun peut il m'aider à résoudre ce problème. Et pourtant en SQL la requête est si simple qu'elle se résume à ce code:
Code:
1 2
|
SELECT nomV, VILLES.numD, nomD FROM VILLES, DEPARTEMENTS WHERE VILLES.numD = DEPARTEMENTS.numD ; |
Merci d'avance pour votre aide