From: Vincent (vincent.majer@medisite.net)
Date: 06/06/2001 - 09:11
Merci beaucoup pour cette astuce que j'ignorais !
Vincent.
>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)
--
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
|