Bonjour !
Je me suis mis il y a peu à l'XSL, et j'ai du mal à comprendre le mécanisme créé à partir des deux balises xsl:template et xsl:apply-templates. Le petit exemple ci-dessous illustre un cas où je ne comprend pas le résultat :
voici un bout de fichier xml assez simple :
la partie principale de mon 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 <BOOK ISBN="9782212090819" LANG="fr" SUBJECT="applications"> <AUTHOR> <FIRSTNAME>Jean-Christophe</FIRSTNAME> <LASTNAME>Bernadac</LASTNAME> </AUTHOR> <AUTHOR> <FIRSTNAME>François</FIRSTNAME> <LASTNAME>Knab</LASTNAME> </AUTHOR> <TITLE>Construire une application XML</TITLE> <PUBLISHER> <NAME>Eyrolles</NAME> <PLACE>Paris</PLACE> </PUBLISHER> <DATEPUB>1999</DATEPUB> </BOOK> <BOOK ISBN="9782212090529" LANG="fr" SUBJECT="général"> ...
Donc dans mon esprit, mon xsl cherche les éléments dans l'xml "AUTHOR". Une fois trouvé, il garde en mémoire l'arbre qui découle de l'élément "AUTHOR". Ensuite, j'appel apply-templates sur les éléments "LASTNAME" et d'après ce que j'ai compris, il devrait alors renvoyer le contenu des éléments "LASTNAME". Or....j'ai ceci en résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <xsl:template match="AUTHOR"> <famille><xsl:apply-templates select="LASTNAME"/></famille> </xsl:template>
Il me renvoie bien le contenu des éléments "LASTNAME" dans des balises "famille", mais il me rajoute après le reste de l'arbre ("Construire une application XMLEyrollesParis1999")...je ne comprend pas bien pourquoi...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <famille>Bernadac</famille> <famille>Knab</famille>Construire une application XMLEyrollesParis1999 <famille>Michard</famille>XML, Langage et ApplicationsEyrollesParis1998 ...
Merci pour votre aide =)
Partager