Bonjour,

Je cherche depuis trois semaines déjà à insérer une variable dans mon fichier xsl, qui soit l'heure courante au format suivant : His (syntaxe php), le but étant simplement d'afficher un résultat de mon fichier xml qui soit supérieur ou égal à cette heure, bref le dernier enregistrement avant l'heure courante...

Merci de vos éclairages... ou si vous avez besoin de plus de détails pour me répondre... je suis un vrai newbie en xslt... Smiley confus
Modifié par mamat- (08 Aug 2005 - 07:57)
Je ne comprend pas bien ce que tu cherches : tu ne sais pas comment écrire dans le xsl (via dom par exemple), tu ne connais pas la syntaxe d'une variable xsl ou autre ? Smiley langue
En fait ce n'est pas que je ne sache pas écrire dans xsl... c'et qu'il n'y a sauf erreur de ma part pas de fonction pour intégrer leur courante (cf. date('His') en php).
Code d'exemple avec un valeur bidon à 9h00 :
<xsl:when test="normalize-space(Timing) &lt;= '090000'">
je cherche donc a remplacer la valeur 090000 par l'heure du server au moment ou le fichier est appelé (il est inclus dans un autre via php)...
Slt,

si tu veux passer un variable php à une feuille de style Xslt, voici la démarche :

<?php

/* on charge le fichier XML à transformer */
$xmldatas = new DOMDocument;
$xmldatas->load('datas.xml');

/* on charge la feuille de style Xslt */
$stylesheet = new DOMDocument;
$styleshet->load('transform.xsl');

/* on crée le processeur */
$processor = new XSLTProcessor;

/* on lui attache la feuille de style */
$processor->importStyleSheet($stylesheet);

/* et on transmet les paramêtre */
/* syntaxe : setParameter('namespace', 'nom de la variable', 'valeur') */
$proc->setParameter('', 'paramêtre', 'valeur');

?> 


Ca suppose que tu dispose de l'extension XSL (php5).
Regarde la documpentation pour plus d'infos.

++
Ok merci mais n'ayant pas la version 5 j'ai fait comme suit :
$stylesheet = domxml_xslt_stylesheet_file('/path/to/stylesheet'); 
$params = array( 
   'param1' => 'value1' 
   ... 
   , 'paramN' => 'valueN' ); 
$result = $stylesheet->process($document, $params);
Pour ceux qui rencontreront le même soucis, on récupére par la suite la variable comme suit :
<xsl:param name="param1"/>

Et on l'utilise comme ceci, par exemple :
<xsl:apply-templates select="Export/Event[translate(normalize-space(Timing),':','') &lt;= $param1


Merci quand même.