[XSLT] Traitement d'un fichier XML
bonjour,
je suis devant un exo XSLT et j'aurai besoin d'une aide pour une question svp.
voila le fichier XML
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 43
|
<laboratoire nom="irit">
<projets>
<projet pid="p1">
<chefprojet>c2</chefprojet>
<participant>c5</participant>
<participant>c6</participant>
<participant>c7</participant>
<participant>c1</participant>
</projet>
<projet pid="p2">
<chefprojet>c1</chefprojet>
<participant>c2</participant>
<participant>c3</participant>
<participant>c7</participant>
<participant>c4</participant>
</projet>
</projets>
<chercheurs>
<chercheur cid="c1">
<nom>durand</nom>
<prenom>jean</prenom>
<grade type="mcf"/>
<sexe type="m"/>
</chercheur>
<chercheur cid="c2">
<nom>martin</nom>
<prenom>miryam</prenom>
<sexe type="f"/>
<grade type="pr"/>
</chercheur>
......................
<chercheur cid="c8">
<nom>melchior</nom>
<prenom>jean</prenom>
<grade type="mcf"/>
<sexe type="m"/>
</chercheur>
</chercheurs>
</laboratoire> |
voila le résultat auquel je souhaite aboutir
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
<chercheurs>
<chercheur>
<nom>durand</nom>
<grade>mcf</grade>
<projet>p2</projet>
</chercheur>
<chercheuse>
<nom>martin</nom>
<grade>pr</grade>
<projet>p1</projet>
</chercheuse>
...............
<chercheur>
<nom>melchior</nom>
<grade>mcf</grade>
<projet></projet>
</chercheur>
</chercheurs> |
et voila le code XSLT que j'ai fais
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
|
<xsl:template match="laboratoire">
<chercheurs>
<xsl:apply-templates select="chercheurs/chercheur" />
</chercheurs>
</xsl:template>
<xsl:template match="chercheur">
<xsl:choose>
<xsl:when test="./sexe/@type='m'">
<chercheur>
<nom><xsl:value-of select="./nom" /></nom>
<grade><xsl:value-of select="./grade/@type" /></grade>
>>>???>>> <projet><xsl:value-of select="//projet/*[.='@cid']/../@pid" /></projet>
</chercheur>
</xsl:when>
<xsl:when test="./sexe/@type='f'">
<chercheuse>
<nom><xsl:value-of select="./nom" /></nom>
<grade><xsl:value-of select="./grade/@type" /></grade>
>>>???>>> <projet><xsl:value-of select="//projet/*[.='@cid']/../@pid" /></projet>
</chercheuse>
</xsl:when>
</xsl:choose>
</xsl:template> |
voila, le problème est que je n'arrive pas à récupérer l'identifiant du projet auquel est affecté le chercheur ; c'est donc la balise Projet que je n'arrive pas à remplir.
je vous remercie du fond du coeur.