Re: Injection de XSL pour execution
Stephane Bonhomme <[email protected]> Thu, 15 Nov 2007 21:11:41 +0100
| Newsgroups | gmane.text.xml.french.tech |
|---|---|
| Message-ID | <1195157501.32643.18.camel@citrouille> |
Le jeudi 15 novembre 2007 à 16:46 +0100, Philippe PRADOS a écrit :
> Bjr,
> Je cherche à permet à un fichier XML d'indiquer un extrait XSLT, puis
> dans une feuille XSLT, je souhaite prendre l'extrait du flux XML et
> l'exécuter.
> Par exemple,
> je souhaite que dans la feuille XML, on puisse indiquer un truc genre :
> <MonTag>
> <xsl:attribute name="abc">Valeur</xsl:attribute>
> </MonTag>
>
peut être le plus simple est d'utiliser un namespace différent de xsl
(dans mon exemple ,"http://xxx/proc") mais traité de façon particulière
(et générique par votre feuille de style), cela fonctionne parfaitement
pour la génération d'éléments et d'attributs :
xml source:
<racine xmlns:proc="http://xxx/proc">
<MonTag>
<proc:attribute name="abc" value="Valeur"/>
</MonTag>
</racine>
et dans votre xsl :
<xsl:template match="proc:attribute">
<xsl:attribute name="{@name}">
<xsl:value-of select="@value"/>
</xsl:attribute>
</xsl:template>
Le tour est joué ! Vous pouvez bien sur faire la meme chose avec des
éléments. Bien sur il y a une limitation, les balises du xml source
doivent contenir des valeurs explicites, et non des expressions xpath
(xslt 1.0 ne supporte pas l'évaluation dynamique d'expressions xpath -
il faut utiliser exslt -si votre processeur le supporte- ou xslt 2.0
pour ce faire).
En espérant avoir répondu à votre question.
S.
> Puis dans la feuille XSLT, je souhaite extraire le contenu de <MonTag/>
> et l'exécuter. Est-ce possible ?
>
> Salutations
>
> Philippe PRADOS
>
> --
> Devenez redacteur <XML>fr et contribuez au developpement du
> xml francophone (http://xmlfr.org/infos/redacteurs/) !
>
> Liste de diffusion "[email protected]" (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 [email protected]
> (mailto:[email protected]?Subject=unsubscribe)
>
--
Stéphane Bonhomme -- Exselt Services
Formations, Conseil et Réalisations en Ingénierie Documentaire,
Technologies Web et Logiciels Libres
[email protected] - http://www.exselt.com
04 57 39 30 78 / 06 88 57 27 08