Bonjour à tous,

J'ai encore un problème .

J'ai plusieurs attributs à renseinger mais j'ai du mal à prendre les valeurs.

Bon je vous montre le code qui n’est pas vraiment compliqué je vous l’accorde, c’est juste des renseignements :

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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
 
<mtask eiac="CATH_FC" lcn="A1AA015" alc="00" tasknum="05">
         <eiac>CATH_FC</eiac>
         <lcn>A1AA015</lcn>
         <alc>00</alc>
         <tasknum>05</tasknum>
         <tasklevel>O</tasklevel>
</mtask>
 
 <mtask eiac="CATH_FC" lcn="A1AA120" alc="00" tasknum="10">
         <eiac>CATH_FC</eiac>
         <lcn>A1AA120</lcn>
         <alc>00</alc>
         <tasknum>10</tasknum>
         <tasklevel>H</tasklevel>
</mtask>
 
<msubtasklan eiac="CATH_FC" lcn="A1AA015" alc="00" tasknum="03" subtasknum="10" language="EN">
 
<eiac>CATH_FC</eiac>
         <lcn>A1AA015</lcn>
         <alc>00</alc>
         <tasknum>03</tasknum>
         <subtasknum>10</subtasknum>
</msubtasklan>
 
<msubtasklan eiac="CATH_FC" lcn="A1AA015" alc="00" tasknum="05"       subtasknum="10" language="EN">
         <eiac>CATH_FC</eiac>
         <lcn>A1AA015</lcn>
         <alc>00</alc>
         <tasknum>05</tasknum>
         <subtasknum>10</subtasknum>
</msubtasklan>
 
<msubtasklan eiac="CATH_FC" lcn="A1AA015" alc="00" tasknum="05" subtasknum="20" language="EN">
         <eiac>CATH_FC</eiac>
 
         <lcn>A1AA015</lcn>
         <alc>00</alc>
         <tasknum>05</tasknum>
         <subtasknum>20</subtasknum>
</msubtasklan>
Je le résume brièvement pour que cela soit plus claire. Dans les balises <Mtask> on donne des informations sur des tâches.
Dans les balises Msubtasklan on donne toutes les sous-tâche d’une tâche correspondante. Dans l’exemple là on a deux sous tâche pour la tâche 5 en l’occurrence subtasknum="10" et subtasknum="20".

Je voudrais pour chaque balise Msubtaskan que je croise crée une balise sous-tâche. Dans cette balise il faudrait que je mette 3 attributs dedans ce qui me donnerait :
- le numéro de la sous-tâche qui est directement renseigné dans Msubtasklan/Tasknum
- le niveau de la tâche qui est se situe dans les informations d’une tâche donc dans Mtask/tasklevel. Il y aura deux attributs pour cette information. Si Tasklevel est égal à H on a dans les attributs tasklevelH=’1’ et tasklevelO=0. Si Tasklevel est égal à O on a tasklevelH=’0’ et tasklevelO=’1’

Voilà ce que devrait donner le résultat si tout se passe bien :

<subtask id=’10’ levelO=’1’ levelH=’0’>
</subtask>
<subtask id=’10’ levelO=’0’ levelH=’1’>
</subtask>
<subtask id=’20’ levelO=’0’ levelH=’1’>
</subtask>

Moi j’ai trouvé ça mais bon ça marche pas c'est une des nombreuses versions que j'ai testé.
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
24
25
26
27
28
29
30
31
32
 
                         <xsl:attribute name="id">
				<xsl:value-of select="./tasknum" />	
				<xsl:variable name="tache" select="./tasknum"/>
			</xsl:attribute>
 
			<xsl:attribute name="olevel">		
			<xsl:variable name="tache" select="./tasknum"/>
			<xsl:if test="../mtask/tasknum='$tache'">
				<xsl:variable name="level" select="../mtask/tasklevel"/>	
				<xsl:choose>
					<xsl:when test="$level='O'">
				    	<xsl:value-of select="1" />
				  	</xsl:when>
				  	<xsl:when test="$level='H'">
				    	<xsl:value-of select="0" />
				  	</xsl:when>
				</xsl:choose>		
			</xsl:if>
			</xsl:attribute>
 
			<xsl:attribute name="ilevel">
			<xsl:variable name="level" select="../mtask/tasklevel"/>		
				<xsl:choose>
					<xsl:when test="$level='O'">
			    		<xsl:value-of select="0" />
			  		</xsl:when>
			  		<xsl:when test="$level='H'">
			    		<xsl:value-of select="1" />
			  		</xsl:when>
				</xsl:choose>	
			</xsl:attribute>

2 jours que je suis sur ça j'en peux plus. Aidez-moi s'il vous plaît.