apply-templates : Comment préciser un Xpath ?
Bonjour,
Voilà ce qui m'arrive !
J'ai le code XML ci-dessous :
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
| <?xml version="1.0" encoding="UTF-8"?>
<enregistrements>
<audios>
<enseignements>
<auteur nom="Dess">
<album titre="Un sens à sa vie ?">
<largeur>462</largeur>
<regroupement sous_titre="Le travail a-t-il un sens ?">
<ligne debut="149,070016">Certainement !</ligne>
<ligne debut="934,678270">Assurément !</ligne>
<ligne debut="1307,860951">Ca c'est sûr !</ligne>
</regroupement>
<regroupement sous_titre="Et le dimanche
?">
<ligne debut="149,070016">Euh !</ligne>
<ligne debut="934,678270">Ben !</ligne>
<ligne debut="1307,860951">Ca dépend !</ligne>
</regroupement>
</album>
</auteur>
<auteur nom="Untel">
<album titre="Le jour se lève !">
<largeur>500</largeur>
<regroupement sous_titre="One">
<ligne debut="149,070016">A</ligne>
<ligne debut="934,678270">B</ligne>
<ligne debut="1307,860951">C</ligne>
</regroupement>
<regroupement sous_titre="Two">
<ligne debut="149,070016">A2</ligne>
<ligne debut="934,678270">B2</ligne>
<ligne debut="1307,860951">C2</ligne>
</regroupement>
</album>
</auteur>
</enseignements>
</audios>
</enregistrements> |
et le code XSL suivant, utilisé pour afficher le contenu des attributs "sous_titre" et des balises "ligne" du 1er album :
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
| <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"
encoding="utf-8"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="enregistrements/audios/enseignements/auteur[1]/album[1]">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Audio</title>
</head>
<body bgcolor="#FFFFFF">
<p>Début
</p>
<xsl:apply-templates select="regroupement" />
<p>End
</p>
</body>
</html>
</xsl:template>
<xsl:template match="regroupement">
<p>
<xsl:apply-templates select="@sous_titre"/>
<xsl:apply-templates select="ligne"/>
</p>
</xsl:template>
<xsl:template match="@sous_titre">
* <xsl:value-of select="."/>
</xsl:template>
<xsl:template match="ligne">
- <xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet> |
Et voilà ce qui s'affiche à l'écran, en conséquence :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| Début
* Le travail a-t-il un sens ? - Certainement ! - Assurément ! - Ca c'est sûr !
* Et le dimanche
? - Euh ! - Ben ! - Ca dépend !
End
500
* One - A - B - C
* Two - A2 - B2 - C2 |
-> Existe t-il un moyen, SVP, pour empêcher l'affichage de la dernière partie (qui ne correspond pas au 1er album), c'est à dire de :
Code:
1 2 3 4 5
| 500
* One - A - B - C
* Two - A2 - B2 - C2 |
Par avance Merci pour toute suggestion que vous pourriez me faire ! :)