bonjour,

je suis devant un exo XSLT et j'aurai besoin d'une aide pour une question svp.

voila le fichier XML

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
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 : 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
 
<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 : 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
 
<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.