Bonjour j'ai un soucie c'est que dans un exercice je suis obligé d'utiliser un template, mais je ne vois pas comment le faire sans que mes requêtes ne se répètent ( ici 4 fois comme il n'y a que 4 livres).

ligne 52

Code xml : 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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 
 
	<xsl:template match="/">
 
		<html>
 
			<head>
				<meta charset="utf-8"/>
				<title> La bibliothèque chérie des L3 </title>			
			</head>
			<body>
				<h1>Liste des livres</h1>
 
				<table border="1" width="100%">
					<tr bgcolor="#9acd32">
						<th>Code</th>
						<th>Auteur</th>
						<th>Description</th>
						<th>Prix</th>
					  </tr>
 
 
					<xsl:for-each select="bibliotheque/livre">
					  <tr>
						<td><xsl:value-of select="@code"/></td>	
						<td><xsl:element name="img">
							<xsl:attribute name="src"><xsl:value-of select="photo/@source"/></xsl:attribute>
							<xsl:attribute name="alt"><xsl:text>"</xsl:text><xsl:value-of select="photo/@source"/></xsl:attribute>
						</xsl:element></td>
						<td>
							<xsl:value-of select="titre"/> : 
							<xsl:value-of select="description"/> par 
							<xsl:value-of select="auteur"/> 
							<xsl:if test="titre[@lang='Fr']">(en francais)</xsl:if>
							<xsl:if test="titre[@lang='En']">(en Englais)</xsl:if>
						</td>
						<td>
							<xsl:value-of select="prix"/> XPF
						</td>
					  </tr>
					 </xsl:for-each>
				</table>
 
 
		<xsl:apply-templates/>
 
			</body>
		</html>
 
	</xsl:template>
 
	<xsl:template match = "livre">
		<h2>Valeur totale des livres de la bibliothèque</h2>
		<h3><xsl:value-of select="sum(//livre/prix[@devise='XPF'])"/> XPF</h3>
		<h3><xsl:value-of select="sum(//livre/prix[@devise='Euros'])"/> Euros</h3>
 
		<h2>Le livre le plus cher coûte</h2>
		<h3><xsl:for-each select="//livre">
			<xsl:sort select="prix[@devise='XPF']" order="descending"/>
			<xsl:if test="position()=1">
				<xsl:value-of select="prix[@devise='XPF']"/> XPF
			</xsl:if>
		</xsl:for-each></h3>
 
		<h2>Le livre le moins cher coûte</h2>
		<h3><xsl:for-each select="//livre">
			<xsl:sort select="prix[@devise='XPF']"/>
			<xsl:if test="position()=1">
				<xsl:value-of select="prix[@devise='XPF']"/> XPF
			</xsl:if>
		</xsl:for-each></h3>
	</xsl:template>