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 : 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
 
[...]
<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 : 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
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 !