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 :
Je le résume brièvement pour que cela soit plus claire. Dans les balises <Mtask> on donne des informations sur des tâches.
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>
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.
Partager