From: Eric van der Vlist (vdv@dyomedea.com)
Date: 06/06/2001 - 08:45
VIRUEGA Pierre wrote:
>
> merci
> l'accès au fichier noms.xml pour chaque element ne risque-t-il pas d'être
> trop lent.
Les principaux processeurs XSLT optimisent cela et ne parsent le
document qu'une seule fois.
> Peut-on charger en bloc ce fichier puis naviguer à l'intérieur (d'une
> variable peut-être?) pour chaque element?
Si, bien entendu:
<xsl:variable name="noms" select="document('noms.xml')/noms"/>
et, plus loin:
<xsl:value-of select="$noms/nom[@elt=$nom]/lang[@lang="$lang"]"/>
devrait faire l'affaire.
Toujours dans un esprit d'optimisation, si vous n'utilisez qu'une seule
langue dans un document, vous pouvez "renverser" langue et noms et
écrire:
<xsl:param name="lang" select="fr"/>
<xsl:variable name="noms"
select="document('noms.xml')/noms/lang[@lang=$lang]"/>
<xsl:template match="nom|rue">
<xsl:variable name="nom" select="local-name()"/>
<xsl:value-of select="$noms/nom[@elt=$nom]/>
<xsl:text> : </xsl:text>
<xsl:value-of select="."/>
</xsl:template>
et noms.xml=
<noms>
<lang lang="fr">
<nom elt="nom">Nom</nom>
<nom elt="rue">Rue</nom>
</lang>
<lang lang="en">
<nom elt="nom">Name</nom>
<nom elt="rue">Street</nom>
</lang>
</noms>
Il y aurait également d'autres pistes à explorer (utilisation d'un ID
composite lang+nom ou de "key"), mais je pense que la solution proposée
ci-dessus devrait déjà être assez rapide.
Cordialement,
Eric van der Vlist
> Cordialement
> Pierre
>
--
Pour y voir plus clair dans la nebuleuse XML...
http://dyomedea.com/formation/
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
http://xsltunit.org http://4xt.org http://examplotron.org
------------------------------------------------------------------------
--
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
|