Bonjour,

Je suis en train de faire des tests avec php/xml/xslt pour par la suite réaliser un petit moteur de template avec xml/xslt mais je suis heurté sur un problème avec mes feuilles xsl. Lorsque je mets tous les templates dans la même feuille, ça fonctionne niquel mais une fois que j'utilise la fonction xsl:import, plus rien n'est affiché si ce n'est le titre. J'ai également essayé d'utiliser la fonction xsl:include mais là, tout foire, rien n'est affiché.

Voici mon code:
gabarits/gabarit.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="article.xsl" />

<xsl:output method="html" encoding="ISO-8859-1" doctype-public="-//W3C//DTD XHTML 1.0 Strict//E" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" />

<xsl:template match="gabarit">
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	<title><xsl:value-of select="titre_site" /></title>
	<link rel="stylesheet" type="text/css" href="styles.css" media="screen" />
</head>
<body>
<h1><xsl:value-of select="titre_site" /></h1>
<ul id="menu">
    <li><a href="index.php" title="L'accueil">Accueil</a></li>
    <li><a href="admin_index.php" title="L'administration">Admin</a></li>
</ul>
<h2>Liste des articles</h2>
<xsl:apply-templates select="article" />
</body>
</html>
</xsl:template>

</xsl:stylesheet>

gabarits/article.xsl
<xsl:template match="article">
<ul>
<xsl:apply-templates select="titre" />
</ul>
</xsl:template>

<xsl:template match="titre">
<li><xsl:value-of select="." /></li>
</xsl:template>

test.php
<?php
$xslt = new xsltProcessor();
$dom = new domDocument();
$dom->load("gabarits/gabarit.xsl");
$xslt->importStylesheet($dom);
$dom->load("article.xml");
echo $xslt->transformToXml($dom);
?>

article.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<gabarit>
	<titre_site>Mon blog</titre_site>
	<article>
		<titre>Un article</titre>
		<titre>Un deuxième article</titre>
	</article>
</gabarit>


Merci.
Modifié par Gaspoute (02 Mar 2008 - 18:26)
Bonjour,

Tel que tu le présentes, article.xsl n'est pas une feuille de style xsl, ni même un document xml. Il lui manque l'entête et l'élément racine :
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

...

</xsl:stylesheet>