Bonjour,

Je débute en XSLT.
Je souhaite inclure un morceau de code à différents endroits dans un document, un peu à la manière d'un include PHP.

Par exemple :

XML
<?xml version="1.0" encoding="iso-8859-1"?>
<root>Hello world</root>


XSLT
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">	
	<xsl:output method="html" encoding="iso-8859-1" indent="yes"/>
	<xsl:template match="/">
		<html>
			<head>...</head>
			<body>
				<xsl:apply-templates select="root" />
				<une inclusion ici>
			</body>
		</html>
	</xsl:template>
	<xsl:template match="root">
		<div>
			<p><xsl:value-of select="."/></p>
			<une inclusion ici>
		</div>
	</xsl:template>
</xsl:stylesheet>


La portion de code à inclure
<div class="include">
	<p>Hello aussi</p>
</div>


Le tout produisant le résultat
<html>
	<head>...</head>
	<body>
		<div>
			<p>Hello world</p>
			<div class="include">
				<p>Hello aussi</p>
			</div>
		</div>
		<div class="include">
			<p>Hello aussi</p>
		</div>
	</body>
</html>


J'ai cru comprendre que les xsl:include et xsl:import sont destinés uniquement à des feuilles XSL, de plus, il me semble inutile de créer un fichier juste pour cette portion de code récurrente.

Comment faire ?

Cordialement,
elvex
Modifié par elvex (28 May 2006 - 15:07)
Tu définis un template de ce type :

<xsl:template name="hello">
 <div class="include">
  <p>Hello aussi</p>
 </div>
</xsl:template>


Et tu l'appelles avec :

<xsl:call-template name="hello" />

Modifié par Anthony Stephan (28 May 2006 - 10:18)