Cliquez ici.
Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

From: Maurice Frankel (mfrankel@maurice-frankel.org)
Date: 01/05/2002 - 09:48


Voilà un exemple complet :

"xsl:with-param" inclus dans "xsl:apply-templates" passe le paramètre.
"xsl:param" au début de "xsl:template" reçoit le paramètre.

C'est identique au passage de paramètres d'une fonction à une autre dans la plupart des langages (sauf pour l'obligation d'utiliser le même nom) .

Maurice Frankel

<?php
$xslt = xslt_create();
$xml = 'notes.xml';
$xsl = 'notes.xsl';
$result = xslt_process($xslt, $xml, $xsl);
if ($result) {
    print $result;
}
else {
 echo "Une erreur est survenue durant le traitement XSL...<br>\n";
 echo "\tErreur numéro : " . xslt_errno($xslt) . "<br>\n";
 echo "\tMessage d'erreur : " . xslt_error($xslt) . "<br>\n";
}
xslt_free($xslt);
?>

<?xml version="1.0" encoding="iso-8859-1"?>
<notes>
<note valeur="5">
  <on>oui<voir/></on>
</note>
<note valeur="6">
  <off>non<voir/></off>
</note>
</notes>

<?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" indent="yes" />

<xsl:template match="/">
  <html>
  <body>
  <xsl:apply-templates select="/*" />
  </body>
  </html>
</xsl:template>

<xsl:template match="note">
  <xsl:apply-templates select="on|off">
    <xsl:with-param name="val" select="@valeur"/>
  </xsl:apply-templates>
</xsl:template>

<xsl:template match="on">
  <xsl:param name="val"/>
  <xsl:apply-templates select="voir">
    <xsl:with-param name="arg" select="text()"/>
    <xsl:with-param name="val" select="$val"/>
  </xsl:apply-templates>
</xsl:template>

<xsl:template match="off">
  <xsl:param name="val"/>
  <xsl:apply-templates select="voir">
    <xsl:with-param name="arg" select="text()"/>
    <xsl:with-param name="val" select="$val"/>
  </xsl:apply-templates>
</xsl:template>

<xsl:template match="voir">
  <xsl:param name="val"/>
  <xsl:param name="arg"/>
  <p>voir : <xsl:value-of select="$val"/> - <xsl:value-of select="$arg"/></p>
</xsl:template>

</xsl:stylesheet>

Le résultat est :

<html>
  <body>
<p>voir : 5 - oui</p>
<p>voir : 6 - non</p>
</body>
</html>

----- Original Message -----
From: "Yvon Thoraval" <yvon.thoraval@free.fr>
To: "XML - TECH list" <xml-tech@xmlfr.org>
Sent: Wednesday, May 01, 2002 12:37 AM
Subject: [xml-tech] Re: limites de PHP + sablotron

>Les paramètres doivent être définis avant de pouvoir être utilisés.
>J'écrirais plutôt :
>
> <xsl:template match="note">
> <xsl:param name="px"/>
> <xsl:param name="py"/>
> <xsl:param name="pw"/>
> <xsl:param name="ph"/>
> <xsl:apply-templates select="off | on">
> <xsl:with-param name="px" select="$px"/>
> <xsl:with-param name="py" select="$py"/>
> <xsl:with-param name="pw" select="$pw"/>
> <xsl:with-param name="ph" select="$ph"/>
> </xsl:apply-templates>
> </xsl:template>
>
>Mais je ne suis pas certain que les noms de la deuxième série de with-
>param puissent êtres identiques à ceux de la première série. Dans ce cas,
>il faudrait écrire :
...

oui bon, en fait les paramètres sont bien définis mais ta réflexion me
fait penser à une chose, si je simplifie l'écriture ca donne :

         <xsl:apply-templates select="note">
            définition des paramètres "px"
         </xsl:apply-templates>

puis plus loin :

   <xsl:template match="note">
      <xsl:apply-templates select="off | on">
         utilisation des paramètres "px"
      </xsl:apply-templates>
   </xsl:template>

donc à "l'intérieur" d'une autre template....
alors que ce que tu suggères serait plutot :

         <xsl:apply-templates select="note">
            définition des paramètres "px"
         </xsl:apply-templates>

puis plus loin :

   <xsl:template match="note">
 re-définition des paramètres "px_ = px"
      <xsl:apply-templates select="off | on">
         utilisation des paramètres "px_"
      </xsl:apply-templates>
   </xsl:template>

j'essaie demain matin et je poste...

merci pour cette suggestion.

-- 
Yvon Thoraval

-- Devenez redacteur <XML>fr et contribuez au developpement du xml francophone (http://xmlfr.org/infos/redacteurs/) !

Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).

Cette liste est a votre disposition pour discuter en francais de tout sujet technique lie a XML.

Pour resilier votre abonnement, envoyez un message contenant la commande "unsubscribe" a xml-tech-request@xmlfr.org (mailto:xml-tech-request@xmlfr.org?Subject=subscribe)

-- Devenez redacteur <XML>fr et contribuez au developpement du xml francophone (http://xmlfr.org/infos/redacteurs/) !

Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).

Cette liste est a votre disposition pour discuter en francais de tout sujet technique lie a XML.

Pour resilier votre abonnement, envoyez un message contenant la commande "unsubscribe" a xml-tech-request@xmlfr.org (mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)



Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC

webmaster@xmlfr.org

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement