From: Alain COUTHURES (alain.couthures@lafon.fr)
Date: 20/07/2001 - 10:07
Bonjour,
J'ai constaté un comportement bizarre de MSXML3 et MSXML3 SP1 vis à vis des
variables XSL.
Voici un document XML simple pour faire ressortir ce problème :
<a>
<b>
<c>C1</c>
</b>
<b>
<c>C2</c>
</b>
</a>
et la feuille de style suivante :
<xsl:template match="/">
<html>
<body>
<p>Total : <xsl:value-of select="count(/a/b)"/></p>
<xsl:variable name="cval" select="/a/b/c"/>
<p>Total c=C1 : <xsl:value-of
select="count(/a/b[c=$cval])"/></p>
</body>
</html>
</xsl:template>
Le résultat produit est bizarre :
Total : 2
Total c=C1 : 2 et non pas 1 !!
Le bon résultat est obtenu si l'on trafique l'affectation à la variable
comme suit :
<xsl:variable name="cval" select="concat('',/a/b/c)"/>
Dans ce cas d'école, le bon résultat est aussi obtenu si l'on écrit plutôt :
<xsl:variable name="cval" select="/a/b[1]/c"/>
mais si l'on doit déjà avoir une condition sur le noeud b, on ne pourra pas
utiliser cet artifice...
S'agit-il d'un bug connu ????
Comment je suis tombé sur ce problème ? En cherchant comment faire en XSL
pour savoir si les noeuds b ont tous un fils c ayant la même valeur !
Quelqu'un aurait-il une autre idée pour déterminer cela ?
Merci de vos réponses
Alain COUTHURES
LAFON SA - Equipements pétroliers
--
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)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|