Plusieurs attributs en même temps.
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:
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:
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.