From: Laurent CAPRANI (caprani@multimania.com)
Date: 07/08/2001 - 16:10
Bonjour Olivier,
A l'oeil nu je n'ai pas vu de difference entre les deux expressions et je
n'ai pas pu reproduire votre probleme.
J'ai essaye ce qui suit dans sablotron 0.60:
Test.xml:
<test>
<article date="12" id="Article 12"/>
<article date="10" id="Article 10">
<article date="12" id="Article 10 - 12"/>
</article>
</test>
Test.xsl:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:variable name="begin" select="11"/>
<xsl:template match="test">
<html>
<xsl:apply-templates select="article[(@date > $begin) or
(.//article[@date > $begin])]"/>
</html>
</xsl:template>
<xsl:template match="article">
<p><xsl:value-of select="@id"/></p>
</xsl:template>
</xsl:stylesheet>
et j'ai obtenu le resultat (satisfaisant):
<html><p>Article 12</p><p>Article 10</p></html>
> -----Message d'origine-----
> De : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org]De la
> part de Olivier Faucheux
> Envoye : 7 aout, 2001 06:13
> A : Liste xml-tech
> Objet : [xml-tech] Question theorique sur XPath
>
>
> Bonjour,
>
> J'ai une question theorique sur XPath. En effet, j'ai dans
> un fichier xsl le motif suivant :
>
> <xsl:apply-templates
> select="article[(@date > $begin) or (.//article[@date
> > $begin])]">
>
> que je lirais "selectionne tous les articles plus recent que
> $begin ou dont
> un article descendant est plus recent que $begin".
>
> Or Sablotron ne me selectionne parmis ceux-ci que ceux qui ont
> effectivement
> des articles dans leur descendance. Je suis donc contraint d'ecrire
>
> <xsl:apply-templates
> select="article[(@date > $begin)] |
> article[(.//article[@date > $begin])]">
>
> qui fonctionne tres bien. Cependant, je m'etonne du comportement de la
> premiere formule. Quelqu'un pourrait-il me dire si en effet XPath prevoit
> cela, ou si c'est un probleme lie a Sablotron ?
>
--
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
|