Voici un exemple de xsl où j'ai envoyé une variable/paramètre, dans ce cas : "titre".
Je récupère ce paramètre au plus haut niveau.
Ensuite, je peux l'utiliser exactement comme dans php : le nom, précédé du signe "$".
Code : Tout sélectionner
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output encoding="iso-8859-1" indent="yes" method="xml" omit-xml-declaration="yes"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:param name="titre"/>
<xsl:template match="/">
<html>
<head>
<title>
<xsl:value-of select="$titre"/>
</title>
</head>
<body>
<!-- -->
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Ensuite, mon code php (DOM version 5 !) ressemble à ceci (c'est du copié-collé depuis le site php.net) :
<?php
$titre = "mon titre - ou tout ce que tu veux";
/* load the xml file and stylesheet as domdocuments */
$xsl = new DomDocument();
$xsl->load('doc.xsl');
$inputdom = new DomDocument();
$inputdom->load('doc.xml');
/* create the processor and import the stylesheet */
$proc = new XsltProcessor();
$xsl = $proc->importStylesheet($xsl);
$proc->setParameter(null, "titre", $titre);
/* transform the xml document */
$newdom = $proc->transformToXml($inputdom);
/* eval and output the xml */
$newdom = eval("?".chr(62).$newdom.chr(60)."?");
?>
Le "eval" en fin de code permet de faire évaluer le document xml généré comme si c'était du php : en effet, je place du code php dans mon document xsl. Ce qui me permet, par exemple, de faire un "include".