From: Eric van der Vlist (vdv@dyomedea.com)
Date: 01/12/2000 - 09:59
Bonjour,
Blond Jean-Baptiste wrote:
>
> Bonjour,
>
> Votre problème vient de <xsl:for-each select="$items/item">.
> La bonne expression Xpath est <xsl:for-each select="$items/items/item">, car
> la variable $items a pour racine "/" et non "/items".
> Attention cependant, une telle opération (le parcours de noeuds contenus
> dans une variable) n'est pas prévue dans les spécifications de XSLT.
Si !
Il y a une différence très importante entre les déclarations :
<xsl:variable name="items" select="document('items.xml')"/>
ou
<xsl:variable name="items" select="/items"/>
par lesquelle vous donnez à "$variable" un type "node-set" et pouvez
donc l'utiliser sans restriction, et:
<xsl:variable name="items">
<xsl:copy-of select="document('items.xml')"/>
</variable>
ou
<xsl:variable name="items">
<xsl:copy-of select="/items"/>
</variable>
par lesquelles vous lui donnez un type "result tree fragment" et ne
pouvez pas accéder à un chemin XPath à l'intérieur de la variable sans
utiliser une extension pour la convertir en node-set.
La distinction node-set / result tree fragment est en fait une
distinction entre un fragment de l'arbre source --node-set-- (c'est à
dire lu directement par le parseur) et un fragment de l'arbre généré
--result tree fragment-- qui n'est pas destiné à être lui même analysé
avec XPath (du moins en attendant XSLT 1.1).
Cordialement,
Eric van der Vlist
--
See you at XML 2000
http://gca.org/attend/2000_conferences/XML_2000/building.htm#vlist
------------------------------------------------------------------------
Eric van der Vlist Dyomedea http://dyomedea.com
http://xmlfr.org http://4xt.org http://ducotede.com
------------------------------------------------------------------------
--
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:05 UTC
webmaster@xmlfr.org
|