Bonjour,
Le vendredi 17 décembre 2004 à 11:04 +0100, Anne Durand a écrit :
> Bonjour
> Le code XSL suivant fonctionne bien sous IE 6
>
> <xsl:value-of select="name()"/>
> <xsl:if test="text()">
> <xsl:text> = </xsl:text><xsl:value-of select="text()"/>
> </xsl:if>
>
> Mais sous Netscape ou FireFox, le test ne fonctionne pas, le système
> détecte toujours quelque chose et m'affiche donc un signe = inutile parfois.
> J'ai essayé aussi avec la longueur de la chaîne text(), nulle, sans que le
> résultat ne change.
MSXML n'est pas conforme aux recommandations W3C en ce qui concerne la
gestion des caractères blancs et lorsque vous écrivez "text()", il
filtre les chaînes "vides"... Ce n'est pas le cas des autres
implémentations (dont celle utilisée par Firefox) qui vous renvoient
tous les noeuds texte même lorsqu'ils ne contiennent que des caractères
blancs (c'est à dire les espaces, tabulations et retours chariot).
> Peut-on faire le test d'une manière différente?
Oui, il faut utiliser la fonction "normalize-space" :
<xsl:value-of select="name()"/>
<xsl:if test="normalize-space(text())">
<xsl:text> = </xsl:text>
<xsl:value-of select="text()"/>
</xsl:if>
Attention également à value-of et text() lorsque vous avez des contenus
mixtes (mélangeant texte et sous éléments) : dans ce cas xsl:value-of ne
sélectionnera que le premier noeud texte (cf
http://xmlfr.org/documentations/faq/010330-0004).
Cordialement,
Eric van der Vlist
--
Weblog:
http://eric.van-der-vlist.com/blog?t=category&a=English
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
(ISO) RELAX NG ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------
--
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 Dec 17 11:18:10 2004