XML et XSL, xsl:template et xsl:apply-templates
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 :
Code:
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">
... |
la partie principale de mon XSL :
Code:
1 2 3
| <xsl:template match="AUTHOR">
<famille><xsl:apply-templates select="LASTNAME"/></famille>
</xsl:template> |
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:
1 2 3 4
| <famille>Bernadac</famille>
<famille>Knab</famille>Construire une application XMLEyrollesParis1999
<famille>Michard</famille>XML, Langage et ApplicationsEyrollesParis1998
... |
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...
Merci pour votre aide =)