From: olivier (odevos@webcell.fr)
Date: 18/03/2002 - 14:04
Cela marche avec un <xsl:if>, mais alors il faut faire le test sur la valeur
de tes attributs pour chaque sortie :
<xsl:variable name="p">
<xsl:if test="/doc/@type='1'">when</xsl:if>
<xsl:if test="/doc/@type='2'">pas when</xsl:if>
</xsl:variable>
En fait, l'expression test d'un élément <xsl:when> après l'élément
sélectionné n'est pas toujours évalué. Les appels à des fonctions avec des
effets de bord donne un résultats indéfinis. C'est ce qu'il doit se passer
avec ANT.
Pour info, lorsque tu mets type=1 dans f1 et type=2 dans f2, là ça marche...
Par contre si tu joues avec un troisième fichier cela ne marche plus... je
te conseille donc le <xsl:if>
----- Original Message -----
From: "Frédéric Laurent" <xml@opikanoba.org>
To: <xml-tech@xmlfr.org>
Sent: Monday, March 18, 2002 2:13 PM
Subject: [xml-tech] ANT, cible <style>
> bonjour
>
> j'essaie de faire marcher ant (l'outil de production de jakarta) pour
> tranformer une série de fichiers xml en appliquant une même feuille de
> style xsl pour obtenir autant de fichiers txt
>
> f1.xml me donne (via trans.xsl) f1.txt
> f2.xml f2.txt
>
>
> mon problème vient à priori, de la mauvaise gestion de ant des variables
> dans la feuille de style xsl,
>
> si vous avez une idée du problème :
>
> -------- f1.xml ---------------------- f2.xml ----------------
> <?xml version="1.0" ?> | <?xml version="1.0" ?>
> <doc type="2"> | <doc type="1">
> <title>var 1</title> | <title>var 2</title>
> </doc> | </doc>
>
>
> --------- build.xml ( fichier ANT de construction ) ----------
> <project name="test" default="dist" basedir=".">
> <target name="dist">
> <style extension=".txt" style="trans.xsl" destdir=".">
> <include name="f*.xml" />
> </style>
> </target>
> </project>
>
> --------------------------- trans.xsl ------------------------
> <?xml version="1.0"?>
> <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:output method="text" encoding="ISO-8859-1"/>
>
> <xsl:variable name="p">
> <xsl:choose>
> <xsl:when test="//doc/@type='1'">when</xsl:when>
> <xsl:otherwise>otherwise</xsl:otherwise>
> </xsl:choose>
> </xsl:variable>
>
> <xsl:template match="/">
> <xsl:apply-templates />
> </xsl:template>
>
> <xsl:template match="title">
> test <xsl:value-of select="$p"/> : <xsl:apply-templates />
> </xsl:template>
> </xsl:stylesheet>
>
>
>
> je devrais avoir comme résultat :
>
> -------- f1.txt ---------------------- f2.txt ----------------
> test otherwise : var 1 | test when : var 2
>
>
> or mon résultat avec ANT est (donc f2.txt est incorrect !)
>
> -------- f1.txt ---------------------- f2.txt ----------------
> test otherwise : var 1 | test otherwise : var 2
>
>
> voila, si des utilisateurs ANT ont une idée...
>
> merci
>
> cordialement
>
>
> --
> Frédéric Laurent
> http://www.opikanoba.org
>
>
>
> --
> 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)
>
--
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
|