Page 1 sur 1

Petit problème de calcul de noeuds

Posté : 25 avr. 2005, 09:02
par Greg
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 : Tout sélectionner

[...] <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 : Tout sélectionner

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