From: Pierre-Adrien Coustillas (pcoustillas@perinfo.com)
Date: 05/03/2002 - 16:01
Je viens d'essayer ton truc avec ie6 pour en faire de l'html (donc avec
msxml) et en effet le resultat est :
Livraison
ERREUR
Livraison
?????????????
t tomber sur un bug de xalan, félicitation, ta plus qu'a leur écrire...
-----Message d'origine-----
De : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org]De la
part de JeanFrancois.METZGER@reuters.com
Envoyé : mardi 5 mars 2002 16:28
À : xml-tech@xmlfr.org
Objet : [xml-tech] Xalan modifie le contenu de ma variable!
Bonjour a tous.
Je fais mes premiers pas avec XSL et je suis confronté à un petit problème.
Ceci est un exemple simple d'un problème que je rencontre avec Xalan
(dernière version
téléchargée sur apache: Xalan 2 D14): Je ne comprends pas pouquoi la valeur
de ma
variable EventName est modifiée.
Voici le contenu du fichier XML en entrée:
<?xml version="1.0" encoding="UTF-8"?>
<XSL_TEST Event="DELIVERY">
<CONTENT>
<OrderDate>2001/03/12</OrderDate>
<DeliveryDate>2001/02/12</DeliveryDate>
</CONTENT>
</XSL_TEST>
L'objectif du fichier XSL est de "traduire" l'attribut Event du node
XSL_TEST et de vérifier que DeliveryDate
est supérieure à OrderDate. Voici le contenu de ce fichier XSL:
<?xml version = "1.0" encoding = "UTF-8"?>
<xsl:transform xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version =
"1.0">
<xsl:variable name="EventName">
<xsl:choose>
<xsl:when test="XSL_TEST/@Event='ORDER'">Commande</xsl:when>
<xsl:when test="XSL_TEST/@Event='BILL'">Facture</xsl:when>
<xsl:when
test="XSL_TEST/@Event='DELIVERY'">Livraison</xsl:when>
<xsl:otherwise>ERREUR</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<!-- Dates comparaison -->
<xsl:variable name="EventStatus">
<xsl:if test="$EventName ='Livraison'">
<xsl:variable name="InOrderDate"
select="XSL_TEST/CONTENT/OrderDate"/>
<xsl:variable name="OrderDD"
select="substring($InOrderDate,9,2)"/>
<xsl:variable name="OrderMM"
select="substring($InOrderDate,6,2) * 100"/>
<xsl:variable name="OrderYY"
select="substring($InOrderDate,1,4) * 10000"/>
<xsl:variable name="OrderDay" select="$OrderDD + $OrderMM +
$OrderYY"/>
<xsl:variable name="InDeliveryDate"
select="XSL_TEST/CONTENT/DeliveryDate"/>
<xsl:variable name="DelivDD"
select="substring($InDeliveryDate,9,2)"/>
<xsl:variable name="DelivMM"
select="substring($InDeliveryDate,6,2) * 100"/>
<xsl:variable name="DelivYY"
select="substring($InDeliveryDate,1,4) * 10000"/>
<xsl:variable name="DeliveryDay" select="$DelivDD + $DelivMM
+ $DelivYY"/>
<xsl:if test="$OrderDay > $DeliveryDay">ERREUR</xsl:if>
<xsl:if test="$OrderDay < $DeliveryDay">OK</xsl:if>
</xsl:if>
</xsl:variable>
<!-- Templates -->
<xsl:template match="XSL_TEST">
<EventReport>
<xsl:call-template name="Test"/>
</EventReport>
</xsl:template>
<xsl:template name="Test">
<Event><xsl:value-of select="$EventName"/></Event>
<Status><xsl:value-of select="$EventStatus"/></Status>
<Event><xsl:value-of select="$EventName"/></Event>
</xsl:template>
</xsl:transform>
Au résultat de la tranformation on constate que la variable EventName a
changé de valeur!
<?xml version="1.0" encoding="UTF-8" ?>
<EventReport>
<Event>Livraison</Event>
<Status>ERREUR</Status>
<Event>12</Event>
</EventReport>
Pour info j'ai fait le même test avec MsXML et cela semble se dérouler
normalement, la valeur d'EventName reste "Livraison".
Merci de vos réponses.
JF.
------------------------------------------------------------- ---
Visit our Internet site at http://www.reuters.com
Any views expressed in this message are those of the individual
sender, except where the sender specifically states them to be
the views of Reuters Ltd.
--
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
--
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
|