Bonjour,

Je viens de parcourir une partie du Forum et même en me servant de la fonction Recherche je n'ai pas trouvé de réponse à ma question, je me permet donc de poster.

Je créé des sites en php depuis un moment et j'avais envie de me mettre à XML/XSLT pour séparer complètement le code php du html. J'ai donc fait un petit test avec les morceau de code suivant:

l'index :
require_once('inc/config/infos.php5');
require_once(DIR_CLASS .'db.php5');
require_once(DIR_CLASS .'news.php5');
$test = new news();
$processeur = new XSLTprocessor();   
$style = new domDocument();
$style->load('style/test.xsl');
$processeur->importStyleSheet($style);
print $processeur->transformToXML($test)


ma classe news:

<?
class news extends domdocument
	{
	function __construct()
		{
		parent::__construct();
		$news = new domelement('news');
		$this->appendChild($news);
		$news->setAttribute('Date', '3 Mars 1985');
		$text = new domText();
		$text->appendData('Michel');
		$news->appendChild($text);
    return $news;
		}
	
	}
?>


et enfin mon code fichier text.xsl :
<?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" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
  <xsl:template match="/">
  <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <title>- Le Chat A Six Pattes -</title>
    </head>
      <body>
        Salut, je m'appel <xsl:apply-templates select="news"/>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>


Le résultat html est bien : Salut, je m'appel Michel. Mon problème est que le code de la page html générée n'est pas indenté ce qui m'embète assez et qu'ensuite les balises <meta> générées ne sont pas fermées (exemple: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">) ce qui empêche la validation xhtml.

Etant novice en la matière, j'ai probablement dut sauter une étape ou faire quelque chose de travers. Merci d'avance à tous ceux qui éclaireront ma lanterne.
Modifié par lanfisis (18 Jun 2006 - 19:27)
L'XHTML étant un langage XML, il faut spécifier <xsl:ouput method="xml"...> et non <xsl:output method="html"...> dans la feuille de style...
Bonjour,

Et pour ce qui est de l'indentation, l'ajout de l'attribut indent="yes" à ton élément xsl:output devrait améliorer les choses.
Xavier a écrit :
Bonjour,

Et pour ce qui est de l'indentation, l'ajout de l'attribut indent="yes" à ton élément xsl:output devrait améliorer les choses.


Ah oui, tiens, j'avais zappé cette partie de la question Smiley confused