From: Dimitri Mouffet (dmouffet@mac.com)
Date: 12/01/2003 - 20:14
Bonjour,
Je débute avec XSLT et je rencontre un problème, sans doute trivial,
auquel je ne trouve pas de solution.
J'utilise un template 'menu' pour créer un menu de navigation. Lorsque
je place ce template au début de mon fichier xsl et que j'y fais
référence par la suite avec 'xsl:call-template' tout s'exécute
correctement. Comme je désire réutiliser cette règle dans d'autres
fichiers, j'ai donc pensé le mettre dans un fichier externe que
j'appelle via 'xsl:include'. Dans ce dernier cas, l'appel au template
'menu' ne donne pas de résultats.
Le fichier appelé par la commande 'xsl:include' ressemble à ceci:
<?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="ISO-8859-1" indent="yes"/>
<xsl:variable name="acletters">éèêëçàùûôîï</xsl:variable>
<xsl:variable name="noletters">eeeecauuoii</xsl:variable>
<xsl:template name="menu">
<xsl:for-each select="document('xNavigation.xml')//link">
<xsl:value-of select="."/>
<xsl:sort select="@order"/>
<xsl:value-of select="."/>
<xsl:variable name="link" select="translate(., $acletters,
$noletters)"/>
<a href="{$link}.html" id="Topnav"><xsl:value-of
select="."/></a><xsl:if test="position() != last()"><xsl:text> |
</xsl:text></xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Le fichier utilisant le template ressemble à ceci:
<?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="ISO-8859-1" indent="yes"/>
<xsl:include href="xxFormat.xsl"/>
<xsl:template match="Publications">
<html>
<head>
<title><xsl:call-template name="test"/></title>
<link rel="stylesheet" type="text/css" href="xStyle.css"/>
<script language="JavaScript" src="xResize.js"></script>
</head>
<body id="Body">
<div id="Top">
<xsl:call-template name="menu"/>
</div>
<div id="Middle">
<h1 id="Module"><xsl:value-of select="@Mod"/></h1>
<h2 id="Map">Disponibles en Téléchargement</h2>
</div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|