[XSL] Petit problème de selection d'un noeud
Bonjour,
Dans ma feuille XSL, je dois déterminer la présence d'un élément XML qui remplit trois conditions, au niveau de ces enfants.
Un petit extrait de ma feuille
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
[...]
<MODULE>
<NUMMOD>60</NUMMOD>
<DONMOD DATCLOT="122001" DUREEEX="12"/>
<DONMOD DATCLOT="122002" DUREEEX="12"/>
<DONMOD DATCLOT="122003" DUREEEX="12"/>
</MODULE>
<MODULE>
<NUMMOD>62</NUMMOD>
<DONMOD DATCLOT="122001" DUREEEX="12"/>
<DONMOD DATCLOT="122002" DUREEEX="12"/>
<DONMOD DATCLOT="122003" DUREEEX="12"/>
</MODULE>
<MODULE>
<NUMMOD>63</NUMMOD>
<DONMOD DATCLOT="122002" DUREEEX="12"/>
<DONMOD DATCLOT="122003" DUREEEX="12"/>
</MODULE>
[...] |
Je précise que l'élément MODULE n'est pas à la racine du document.
En fait, je dois vérifier le contenu de NUMMOD, de DATCLOT et de DUREEEX, et compter le nombre de résultats issus du test (0 ou 1).
Un petit extrait de ma feuille XSL:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
<xsl:template name="genModule">
<xsl:param name="node"/>
<xsl:param name="classe"/>
<xsl:param name="module"/>
<xsl:if test="string-length($node) > 0">
<xsl:variable name="mod" select="concat('//NUMMOD=',$module,'/..DONMOD[@DATCLOT=',substring($node,1,6),' and @DUREEEX=',substring($node,7,2),']')" />
<xsl:choose>
<xsl:when test="count($mod) > 0">
<td class="{$classe}" align="center">X</td>
</xsl:when>
<xsl:otherwise>
<td class="{$classe}" align="center"> </td>
</xsl:otherwise>
</xsl:choose>
<xsl:call-template name="genModule">
<xsl:with-param name="node" select="substring($node,9)" />
<xsl:with-param name="classe" select="$classe" />
<xsl:with-param name="module" select="$module" />
</xsl:call-template>
</xsl:if>
</xsl:template> |
La ligne qui me pose problème est celle où je calcule la variable $mod.
Quelqu'un voit-il une solution à mon problème ou pourrait-il me mettre sur la piste ?
Merci d'avance ! :wink: