Est-ce que ce genre de syntaxe ne te conviendrais pas:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="ISO-8859-1" indent="yes"/>
<xsl:param name="myNodeName" />
<xsl:template match="/exemple/test/$mynodeName">
Sortie : [<xsl:value-of select="." />]
</xsl:template>
Tu n'as plus qu'a passé à ton processeur XSLT le parametre qui va bien.
Dans mon cas (UXT) celà donnerait:
UXT -PmyNodeName=a
ou
UXT -PmyNodeName=a2
Ca devrait marcher (j'ai pas fait l'essai je t'avoue mais j'ai un peut le
même genre de XSLT dynamique).
A+
Hervé
> -----Original Message-----
> From: xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org]On
> Behalf Of osopardo@free.fr
> Sent: lundi 6 septembre 2004 14:31
> To: xml-tech@xmlfr.org
> Subject: [xml-tech] Re: creation de chemins dynamiquement
>
>
>
> Ce que j'aimerais c'est pouvoir utiliser "param1" pour soit
> aller chercher le
> contenu d'une balise <b> fille de <a> ou fille de <a2>,
> respectivement si
> "param1" vaut "/a" ou "/a2".
> Je ne peut pas enlever les quotes autour "/b" sinon "/b" est
> évaluation au
> moment de la création de mon chemin ce qui ne donne rien
> lorsque que l'on est
> au niveau du noeud <test>.
>
> Je ne sais pas s'il est possible de résoudre le problème sans
> changer de
> méthode, peut-être qu'il existe une autre façons pour obtenir
> le résultat
> voulut.
>
> Pour plus de clarté j'ai réécrit et testé mon exemple :
>
> ________XML________________________________________________________
> <?xml version="1.0" encoding="UTF-8"?>
>
> <exemple>
> <test>
> <a>
> <b>texte</b>
> </a>
> <a2>
> <b>texte</b>
> </a2>
> </test>
> </exemple>
> ____________________________________________________________________
>
> _______XSL__________________________________________________________
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:fo="http://www.w3.org/1999/XSL/Format">
>
> <xsl:template match="exemple">
> <xsl:apply-templates select="test">
> <xsl:with-param name="param1" select="'/a'" />
> </xsl:apply-templates>
> </xsl:template>
>
> <xsl:template match="test">
> <xsl:param name="param1" />
> <xsl:variable name="var1" select="concat($param1,'/b')" />
> Sortie : [<xsl:value-of select="$var1" />]
> </xsl:template>
>
> </xsl:stylesheet>
> ______________________________________________________________
> ___________
>
> Bourgois Guillaume
>
>
>
> Selon COLLET Herve <Herve.COLLET@gemplus.com>:
>
> >
> >
> > BOnjour,
> >
> > je pense que la syntaxe qui fonctionne est plutôt:
> >
> > <xsl:template match="test">
> > <xsl:param name="param1" />
> > <xsl:variable name="var1" select="concat($param1,./a/b)" />
> > Sortie : [<xsl:value-of select="$var1" />]
> > </xsl:template>
> >
> > En quotant '/b' je pense que tu n'évalue pas le noeud <b> de ton XML
> > d'entrée.
> >
> > De plus <b> est en sous neoud de <a> donc de <test> tu ne
> peux l'atteind
> > que par test/a/b et pas directement /b.
> >
> > Me trompes-je ??
> >
> > Amicalement
> >
> > Hervé
> >
> > > -----Original Message-----
> > > From: xml-tech-bounce@xmlfr.org
> [mailto:xml-tech-bounce@xmlfr.org]On
> > > Behalf Of osopardo@free.fr
> > > Sent: lundi 6 septembre 2004 12:23
> > > To: xml-tech@xmlfr.org
> > > Subject: [xml-tech] creation de chemins dynamiquement
> > >
> > >
> > >
> > > Bonjour,
> > >
> > > J'ai besoin de créer des chemins dynamiquement selon des
> > > paramètres passées a un
> > > template, j'ai donc essayer ce qui suis (version simplifiée)
> > >
> > > ___________XSL_______________________________________________
> > >
> > > [...]
> > > <xsl:apply-templates select="test">
> > > <xsl:with-param name="param1" select="'a'" />
> > > </xsl:apply-templates>
> > > [...]
> > >
> > >
> > > <xsl:template match="test">
> > > <xsl:param name="param1" />
> > > <xsl:variable name="var1" select="concat($param1,'/b')" />
> > > Sortie : [<xsl:value-of select="$var1" />]
> > > </xsl:template>
> > >
> > > ___________XML___________________________________________________
> > >
> > > <test>
> > > <a>
> > > <b>texte</b>
> > > </a>
> > > </test>
> > >
> > > Le chemin est bien créer comme je le souhaite mais je me
> retrouve avec
> > > "Sortie[a/b]" au lieu de "Sortie[texte]"
> > > (tout fonctionne bien si je remplace
> "concat($param1,'/b'" par "a/b")
> > >
> > > Bourgois Guillaume
> > >
> > > --
> > > 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)
> >
> >
>
>
>
> --
> 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)
Received on Mon Sep 6 15:04:57 2004