On Feb 10, 2006, at 17:19, Tiscar Sebastien wrote:
> il suffit dans le template de spécifier le prédicat qui correspond
> dans votre exemple
> <p class="rouge gras"></p>
>
> matchera avec un template déclaré:
> <xsl:template match=p[@class='rouge gras']></xsl:template>
Non, si je comprends bien son problème ça n'y répond pas. L'attribut
class est une liste de noms de classes séparés par des espaces, et il
voudrait déclencher des templates particuliers pour "rouge" ou "gras".
En XSLT 2.0 c'est facile, si class est déclaré (ou casté) de type
NMTOKENS, alors @class = "rouge" ou @class="gras" devraient marcher.
En XSLT 1.0 il faut parser la valeur d'attribut en XSLT et comparer
sur le résultat. C'est faisable, mais pas forcément facile (ni
élégant). Le mieux est probablement soit d'utiliser une librairie
fournissant déjà ce type de parsing, soit d'utiliser une extension du
processeur. Par exemple une extension regex permettrait de chercher
quelque chose de l'ordre de "\bmaClasse\b".
--
Robin Berjon
Senior Research Scientist
Expway, http://expway.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)
Received on Fri Feb 10 16:26:41 2006