From: Eric van der Vlist (vdv@dyomedea.com)
Date: 24/12/2003 - 09:35
On Tue, 2003-12-23 at 17:37, Benoit.Lefevre@reuters.com wrote:
> > > Voici une des formulations XPath que j'ai esseille mais
> > > qui n'a pas aboutie :
> > >
> > > ($set/* | $set/@* | $set/text())[position()!=1]
> ......
> >
> > Qu'est-ce qui ne marche pas à ce niveau?
> >
>
> Plein de choses.
>
> J'avais esseille dans un premier temps ce type de formulation :
>
> car : $set[1]
> cdr : $set[position()!=1]
>
> Mais ceci a engendre des problemes du type "is not a node set".
Oui, mais pas pour la raison habituelle!
Une variable peut ne pas être de type node set parce qu'elle est de type
RTF et dans ce cas on peut utiliser la fonction exsl:node-set pour faire
la conversion, mais ce n'est pas votre cas : toutes vos définitions de
variables (ou paramètres) sont faits en utilisant l'attribut select et
vos variables et paramètres ne sont donc pas de type RTP (sauf pour la
recherche du type d'un noeud mais vous ne faites pas d'expressions XPath
sur cette variable là) .
Je ne vois qu'une seule raison pour laquelle vos variables peuvent ne
pas être des node sets, ce serait qu'elles soient des chaînes de
caractères (ce qui est différent d'un noeud texte pour XSLT) et cela
expliquerait pourquoi exsl:node-set est inopérant.
Je n'ai pas le temps de me pencher en détail sur votre transformation
qui me semble correcte (à part le test
<xsl:when test=" $carTestResult = '0' ">
> <xsl:call-template name="shortCutTest">
> <xsl:with-param name="tree1" select="exsl:node-set($subTree1[position()!=1])"/>
> <xsl:with-param name="tree2" select="exsl:node-set($subTree2[position()!=1])"/>
> </xsl:call-template>
> </xsl:when>
Qui devrait être inversé (test=" $carTestResult = '1').
Ce que je vous conseillerais c'est :
* de supprimer tous vos appels de esxl:node-set : dans votre
contexte ils ne servent à rien.
* De dériver une première version simplifiée qui parcours un seul
fragment suivant le même principe.
* De suivre le déroulement de cette transformation soit en
générant des messages (via xsl:message) de trace soit en
utilisant un debugger XSLT.
Cordialement,
Eric van der Vlist
--
Read me on Advogato.
http://advogato.org/person/vdv/
Upcoming XML schema languages tutorial:
- Santa Clara -half day- (15/03/2004) http://masl.to/?J24916E96
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
(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)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|