Re: Une histoire de styles ...
David Rivron <[email protected]>
| Newsgroups | gmane.text.xml.french.tech |
|---|---|
| Message-ID | <[email protected]> |
Je voulais en effet surtout montrer cette faiblesse mais il est vrai que
je n'avais pas pensé à l'utilisation des priorités, ni à l'utilisation
de normalize-space pour plus de sécurité.
En fait, je n'ai jamais utilisé ce "truc" en dehors de l'analyse des
paramètres.
David RIVRON
Tiscar Sebastien a écrit :
> je pense que l exemple du bleu1 n existait que pour montrer une faiblesse du
> template
> <xsl:template match="@class[contains(., "blue")]>
> qui matchera un attribut class="blue" ou "blue1" ou encore "saperlipoblue"
> et autre non connu à l avance
> l utilisation du normalize space avec une concaténation de blanc de part et
> d autre du renvoit de la chaine contenue lève tous les doutes.
> <xsl:template match="p[contains(concat(' ', normalize-space(@class), ' '), '
> blue ')]">
>
>
>
> ----- Original Message -----
> From: "Sandrine Soudant" <[email protected]>
> To: <[email protected]>
> Sent: Friday, February 10, 2006 3:44 PM
> Subject: [xml-tech] Re: Une histoire de styles ...
>
>
> Avec cette solution, la règle de précédence des templates lévera le
> doute et choisira le bon template.
> ex:
>
> <xsl:template match="p">
> <xsl:apply-templates select="@class">
> ...
> </xsl:template>
>
> <xsl:template match="@class[contains(., "blue1")]>
> ...
> </xsl:template>
>
> <xsl:template match="@class[contains(., "blue")]>
> ...
> </xsl:template>
>
> Sandrine Soudant
>
> David Rivron a écrit :
>
>> Je propose cette solution :
>>
>> <xsl:template match="p">
>> <xsl:apply-templates select="@class">
>> ...
>> </xsl:template>
>>
>> <xsl:template match="@class[contains(., "blue")]>
>> ...
>> </xsl:template>
>>
>> Un problème survient lorsqu'un nom de classe en comprend un autre (ex :
>> blue, blue1).
>> Pour y remédier mais c'est assez lourd, on peut concaténer un espace
>> blanc à la fin de la valeur de l'attribut : @class[contains(concat(., "
>> "), "blue "].
>>
>> David RIVRON
>>
>> Jean-Luc Mathieu a écrit :
>>
>>
>>> Oui, c'est ce à quoi je suis arrivé (style unique).
>>>
>>> Cependant, je souhaiterais avoir des templates indépendants, comme par
>>> exemple :
>>>
>>> <xsl:template ...><!-- template pour le rouge --></xsl:template>
>>> <xsl:template ...><!-- template pour le gras--></xsl:template>
>>>
>>> ... afin de gérer toutes les combinaisons sans avoir à réécrire un
>>> template à chaque fois :
>>>
>>> <p class="rouge gras">...</p>
>>> <p class="rouge">...</p>
>>> <p class="gras">...</p>
>>> <p class="gras rouge">...</p>
>>> ...
>>>
>>>
>>> Tiscar Sebastien a écrit :
>>>
>>>
>>>
>>>> bonjour,
>>>> 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>
>>>> voila
>>>>
>>>>
>>>> ----- Original Message -----
>>>> From: "Jean-Luc Mathieu" <[email protected]>
>>>> To: <[email protected]>
>>>> Sent: Friday, February 10, 2006 3:15 PM
>>>> Subject: [xml-tech] Une histoire de styles ...
>>>>
>>>>
>>>> Bonjour !
>>>>
>>>> Je cherche à reproduire un tant soit peu le système des classes de
>>>> styles xhtml au sein d'une feuille de style XSL. En fait, je
>>>> souhaiterais que la présence d'un attribut style sur n'importe quel
>>>> noeud d'entrée provoque l'appel à un ou plusieurs templates, en fonction
>>>> des noms de style que cet attribut contient.
>>>>
>>>> Par exemple, si je décode une balise <p class="rouge gras">...</p>, je
>>>> souhaiterais déclencher les templates associés au style rouge et au
>>>> style gras.
>>>>
>>>> Je ne sais pas si c'est faisable en XSL 1.0, c'est pourquoi je vous pose
>>>> la question. J'ai réussi à trouver un moyen dans le cas où on spécifie
>>>> qu'un seul style à la fois, mais pas dans le cas où plusieurs styles
>>>> sont possibles ...
>>>>
>>>> Merci d'avance pour vos réponses.
>>>>
>>>> --
>>>> 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)
>>>>
>>>>
>>>>
>>>> --
>>>> 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)
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>> --
>> 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)
>>
>>
>
> --
> Sandrine Soudant <[email protected]>
> Cogenit Tél : +33 (0) 1 40 20 08 43
> 53 rue Sainte Anne Fax : +33 (0) 1 40 20 08 45
> 75002 Paris <URL:http://www.cogenit.fr>
>
>
> --
> 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)
>
>
>
> --
> 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)
>
>
>