From: cecile (Cecile.Guilloux@ujf-grenoble.fr)
Date: 09/01/2001 - 10:14
Bonjour,
apres quelques essais, votre code tourne correctement ...merci !!
Alors, je me suis dit : pourquoi ne pas isoler ma liste de variables dans un
document XML ?
donc dans mot.xml j'ai :
<?xml version="1.0"?>
<mots:liste xmlns:mots="mots.xml">
<mot lang="fr" id="ECRIVEZ">Il y a quelque chose a faire ...</mot>
<mot lang="fr" id="AIM">Objectif</mot>
<mot lang="en" id="AIM">Aim&nbsp;</mot>
<mot lang="simple" id="AIM">But&nbsp;</mot>
<mot lang="fr" id="AUTHOR">Auteur</mot>
<mot lang="en" id="AUTHOR">Author</mot>
</mots:liste>
et puis dans un document xsl :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:mots="mot.xml"
>
<xsl:template name="variable">
<xsl:param name="substitut">ECRIVEZ</xsl:param>
<xsl:param name="langue"><xsl:value-of select="
descendant::language"/></xsl:param>
<xsl:value-of select="document('mot.xml')/mots:liste/mot[@id=$substitut
and @lang=$langue]" />
</xsl:template>
Ce code ne genere pas d'erreur....mais ne fait pas grand chose non plus, ce
qui est bien en genant !
Pourriez-vous m'eclairer sur la fonction document() ?
merci
Cecile Guilloux
Eric van der Vlist wrote:
> cecile wrote:
>
> Bonjour,
>
> Votre diagnostic:
>
> > Mes variables
> > etant declarees comme enfants d'un noeud <xsl:if>, lui meme enfant d'un
> > <xsl:template>, elles ne sont pas accessibles aux enfants d'autres
> > <xsl:template>
>
> est tout à fait correct et il va faloir trouver une autre façon de
> procéder :) ...
>
> Pourquoi ne pas placer tout ces mots dans une structure XML pouvant elle
> même être incluse dans votre feuille XSLT, par exemple:
>
> <xsl:stylesheet xmlns:mots="http://mon.espace.de.noms" ...>
>
> <mots:liste>
> <mot xml:lang="fr" id="AIM">Objectif&nbsp; :</mot>
> <mot xml:lang="en" id="AIM">Aim&nbsp; :</mot>
> <mot xml:lang="fr" id="AUTHOR">Auteur&nbsp; :</mot>
> <mot xml:lang="en" id="AUTHOR">Author&nbsp; :</mot>
> </mots:liste>
>
> Vous pourrez ensuite accéder au mot "AUTHOR" dans la langue contenue
> dans la variable $lang relativement facilement en écrivant:
>
> select="document('')/xsl:stylesheet/mots:liste/mot[xml:lang=$lang and
> @id='AUTHOR']"
>
> ou, plus simplement si vous avez défini une variable globale:
>
> <xsl:variable name="mots"
> select="document('')/xsl:stylesheet/mots:liste"/>
>
> par
>
> select="$mots/mot[xml:lang=$lang and @id='AUTHOR']"
>
> Il y a, bien entendu, plusieurs variations autours de cette solution et
> elles peuvent être "encapsulées" dans un template que vous pourrez
> utiliser avec xsl:call-template.
>
> Cordialement,
>
> Eric van der Vlist
> --
> ------------------------------------------------------------------------
> Eric van der Vlist Dyomedea http://dyomedea.com
> http://xmlfr.org http://4xt.org http://ducotede.com
> ------------------------------------------------------------------------
>
> --
> 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)
--
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:05 UTC
webmaster@xmlfr.org
|