Petit problème de calcul de noeuds
Posté : 25 avr. 2005, 09:02
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
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:
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 !
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>
[...]
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>
Quelqu'un voit-il une solution à mon problème ou pourrait-il me mettre sur la piste ?
Merci d'avance !