Bonjour!

J'ai plusieurs fichiers xsl qui affichent le même haut de page et pied de page.
Afin de faciliter le boulot du designer, j'aimerais faire comme en php, cad un une fonction hautDePage() et piedPage() mais en xsl.

Seulement je n'y arrive pas, j'ai essayé en faisant des imports de fichier xsl mais à chaque fois j'ai des des erreurs. J'utilise DOMXML à savoir que je suis débutant sur le sujet!

Voici le script xsl que j'aimerais scinder en trois:

<?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"
  doctype-public="-//W3C//DTD HTML 4.01//EN"
  doctype-system="http://www.w3.org/TR/html4/strict.dtd"
  indent="yes" />

<xsl:template match="liste_articles">
  <html>
	<head>
		<title>Liste Articles</title>
		<link type="text/css" rel="stylesheet" href="index.css" />
		<xsl:comment>[if lte IE 6]<xsl:text disable-output-escaping="yes"><![CDATA[>
			<style type="text/css">
			div#page {
				height: 100%;
			}
			div#piedPage2 {
				bottom: -1px;
			}
			</style>
			<![endif]]]></xsl:text></xsl:comment>
	</head>
	<body>
		<div id="page">
			<div id="entete"></div>
			
			<ul id="menu">
				<li><a class="prems">Bienvenue !</a></li>
				<li><a href="/">Accueil</a></li>
				<li><a href="/">Recherche</a></li>
				<li><a href="/">Déconnexion</a></li>
			</ul>
			<h1 id="titre">Consultation des tarifs >> <xsl:call-template name="titreTaxe" /></h1>
			<div>
				<b>Société : </b><xsl:value-of select="client/societe" /><br />
				<b>   Login : </b><xsl:value-of select="client/login" />
			</div>

			<div id="contenu">
				<h2>Résultat pour la recherche : <xsl:value-of select="recherche" /></h2>
				
				<p>
					<center>
						<form name="form">
							Votre recherche :
							<input type="hidden" name="idSession">
								<xsl:attribute name="value">
									<xsl:value-of select="client/idSession" />
								</xsl:attribute>
							</input>
							<input type="text" name="recherche">
								<xsl:attribute name="value">
									<xsl:value-of select="recherche" />
								</xsl:attribute>
							</input>
							Nombre : 
							<input type="text" name="nombre" size="3">
								<xsl:attribute name="value">
									<xsl:value-of select="nombre" />
								</xsl:attribute>
							</input>
							ou <xsl:call-template name="boucleNombre" />
							Taxe : <xsl:call-template name="taxe" />
						</form>
					</center>
				</p>
				
				<table id="listeArticles" align="center">
					<tr>
						<th>Code Appel</th>
						<th>ARTICLE</th>
						<th>BF</th>
						<th>ACHAT</th>
						<th>REMISE</th>
						<th>VENTE</th>
						<th>SERVICE</th>
						<th>TOTAL</th>
						<th>MARGE</th>
						<th>%</th>
						<th>DISPO</th>
					</tr>
					<xsl:apply-templates select="article" />
				</table>
			</div>
			<div id="piedPage1">
				<div id="piedPage2"> © manuscle</div>
			</div>
		</div>
	</body>
  </html>

</xsl:template>

Modifié par manuscle (22 Apr 2008 - 11:18)
Je précise que j'utilise la classe DOM et XSLTProcessor en php pour générer ma page.
Le message d'erreur m'indique qu'une balise n'est pas fermée dans mon premier fichier ce qui est logique vu que j'ouvre une balise id="page" dans mon fichier entete.xsl et que je la referme dans le fichier pied.xsl

Voici le code du fichier entete.xsl:

<?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"
  doctype-public="-//W3C//DTD HTML 4.01//EN"
  doctype-system="http://www.w3.org/TR/html4/strict.dtd"
  indent="yes" />

<xsl:template name="entete">
<html>
	<head>
		<title>Liste Articles</title>
		<link type="text/css" rel="stylesheet" href="index.css" />
	 <xsl:comment>[if lte IE 6]<xsl:text disable-output-escaping="yes"><![CDATA[>
			<link type="text/css" rel="stylesheet" href="indexIE.css" />
			<![endif]]]></xsl:text></xsl:comment>
	</head>
	<body>
		<div id="page">
			<div id="entete"><span><xsl:value-of select="client/societe" /></span></div>
			
			<ul id="menu">
				<li><a class="prems">Bienvenue !</a></li>
				<li><a href="/">Accueil</a></li>
				<li><a href="/">Recherche</a></li>
				<li><a href="/">Déconnexion</a></li>
			</ul>
			<h1 id="titre">Consultation des tarifs >> <xsl:call-template name="titreTaxe" /></h1>
			<div>
				<b>Société : </b><xsl:value-of select="client/societe" /><br />
				<b>   Login : </b><xsl:value-of select="client/login" />
			</div>
</xsl:template>


Le fichier pied.xsl :


<?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"
  doctype-public="-//W3C//DTD HTML 4.01//EN"
  doctype-system="http://www.w3.org/TR/html4/strict.dtd"
  indent="yes" />

<xsl:template name="entete">
<div id="piedPage1">
				<div id="piedPage2"> © manuscle</div>

			</div>

		</div>

	</body>

  </html>



</xsl:template>

et pour finir le fchier contenu.xsl:
Je ne met que le debut et la fin

<?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"
  doctype-public="-//W3C//DTD HTML 4.01//EN"
  doctype-system="http://www.w3.org/TR/html4/strict.dtd"
  indent="yes" />

<xsl:import href="entete.xsl"/>
<xsl:import href="pied.xsl"/>

<xsl:template match="liste_articles">
<h1 id="titre">Consultation des tarifs >> <xsl:call-template name="titreTaxe" /></h1>
<div id="contenu">.../...</div>


Voici le code du fichier php:


	# LOAD XML FILE
	$XML = new DOMDocument();
	$XML->loadxml( 'fichier.xml' );

	# START XSLT
	$xslt = new XSLTProcessor();

	# IMPORT STYLESHEET 1
	$XSL = new DOMDocument();
	$XSL->load( 'consultation.xsl' );
	$xslt->importStylesheet( $XSL );

	
	#PRINT
	print $xslt->transformToXML( $XML );
Je viens d'aller faire un tout sur ton site internet et je crois que je vais commencer par suivre les excellents tutoriaux sur XML et XSL que tu as fait. Je suis sûr que j'y trouverais la solution à mon problème!
Franchement félicitation et merci, je ne remercierais jamais assez les personnes qui partagent leurs connaissances!

Respect! Smiley prie
manuscle a écrit :
Je viens d'aller faire un tout sur ton site internet et je crois que je vais commencer par suivre les excellents tutoriaux sur XML et XSL que tu as fait. Je suis sûr que j'y trouverais la solution à mon problème!
Franchement félicitation et merci, je ne remercierais jamais assez les personnes qui partagent leurs connaissances!

Respect! Smiley prie



Smiley confused
Gilles a écrit :

Donne à une personne un poisson, elle se nourrira pendant un jour.
Apprends-lui à pêcher, elle se nourrira toute sa vie.
Kuan-Tseu

a écrit :
Smiley confused

Smiley cligne
Bon ça y est! Après avoir suivi le tuto je comprend mieux où était mon erreur.

Maintenant ça marche, je n'ai plus qu'à vérifier que DomXML en php ne va pas me créer de soucis!
Smiley ravi