Bonjour,
je suis totalement débutant en xsl (et totalement nul aussi accessoirement ), mais bon j'ai pas le choix je suis obligé de m'y mettre.
Je n'arrive pas à faire une transformation.
Le plus simple c'est de vous montrer un exemple de ce que je souhaite faire.
Je souhaite au final obtenir un tableau, avec dans la colonne de droite les titres des livres et dans la colonne de gauche l'auteur de ce livre

Voici ma dtd

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!ELEMENT livre (auteurs, titres) >
<!ELEMENT auteurs (auteur)* >
<!ELEMENT titres (titre)* >
<!ELEMENT titre (nom) >
<!ATTLIST titre
		id ID #REQUIRED 
		refdeauteur IDREF #REQUIRED
		>
<!ELEMENT nom (#PCDATA) >
 
<!ELEMENT auteur (nom) >
<!ATTLIST auteur
		id ID #REQUIRED    
		>
Voici un exemple de 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
 
<livre>
  <auteurs>
    <auteur id="auteur1"  >
      <nom>Dupond</nom>
    </auteur>
    <auteur id="auteur2" >
      <nom>Charles</nom>
    </auteur>
  </auteurs>
  <titres>
    <titre id="titre1" refdeauteur="auteur1" >
      <nom>Une histoire vraie</nom>
    </titre>
    <titre id="titre2" refdeauteur="auteur2">
      <nom>Belles Histoires</nom>
    </titre>
    <titre id="titre3" refdeauteur="auteur1">
      <nom>Sous le vent</nom>
    </titre>  
  </titres>
</livre>
Et voici ce que j'ai commencé à faire en xsl

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
<xsl:template match="/">		
<html >
 
<head></head>
<body><xsl:apply-templates select="livre"/></body>
 
</html>
</xsl:template>
 
<xsl:template match="livre">
<table border="4">
<tr>
<td>Titres</td>
<td>Auteurs</td>
</tr>
<xsl:apply-templates select='titres/titre'></xsl:apply-templates>
</table>
</xsl:template>
 
<xsl:template match="titre">
<tr>
<td><font face="arial" size="1"><xsl:value-of select='nom'></xsl:value-of></font></td>
<td><font face="arial" size="1"><xsl:value-of select='@refdeauteur'</xsl:value-of></font></td>
</tr>
</xsl:template>
</xsl:stylesheet>

Sauf que à la place d'avoir dans la 2ème colonne la valeur de l'attribut refdeauteur, je souhaiterai avoir le nom de cet auteur. Sauf que je ne vois pas du tout comment faire...
Je ne sais pas si j'ai été très clair, si vous avez des questions n'hésitez pas.
Merci d'avance