Cliquez ici.
Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

From: Eric van der Vlist (vdv@dyomedea.com)
Date: 28/11/2002 - 08:05


On Wed, 2002-11-27 at 16:36, Gregoor, Van Der Eyken wrote:
>
> Bonjour
>
> il s'agit d'une question/affirmation je souhaite simplement comprendre réellement.
>
> 1. un <xsl:template match="Product[position() mod 4=1]" mode="m1"> appelé par
>
> un <xsl:apply-templates select="//Product[@Univers=current()/@Univers]" mode="m1"
>
> 2. un <xsl:template match="Product" mode="m2"> appelé par
>
> un <xsl:apply-templates select="//Product[@Univers=current()/@Univers][position() mod 4=1]" mode="m2"
>
>
> les templates m1 et m2 utilisant les predicat tour a tour (le but etant de mettre 4 produit ds un <tr/>
>
> following-sibling::Product[@Univers=current()/@Univers][1]
> following-sibling::Product[@Univers=current()/@Univers][2]
> following-sibling::Product[@Univers=current()/@Univers][3]
>
> il s'avère que la position est "faussée", j'ai l'impression qu'il reprend l'axe original (pas celui correspondant uniqument aux produits de cette univers), or
> j'arrive à la conclusion que
> si il est exact que //Product[@Univers=current()/@Univers][position() mod 4=1] agissent en 2 temps (prod univers) et ensuite 1 sur 4
> un template match="Product[position() mod 4=1]" est évalué hors contexte,
>
> Quelqu'un peut il me dire si ce raisonnement est correct.

Je ne suis pas certain de bien comprender votre formulation :-> ...

"position()" est toujours relatif à la liste de noeuds en cours de
sélection.

Reprenons vos sélections:

<xsl:apply-templates select="//Product[@Univers=current()/@Univers]"
mode="m1"/>

La liste de noeuds est "//Product[@Univers=current()/@Univers]"

<xsl:template match="Product[position() mod 4=1]" mode="m1">

position() est évaluée par rapport à la liste de noeuds qui est toujours
"//Product[@Univers=current()/@Univers]" (au passage, il faudra penser à
mettre un template par défaut pour ceux dont la position n'est pas égale
à 1 modulo 4).

<xsl:apply-templates
select="//Product[@Univers=current()/@Univers][position() mod 4=1]"
mode="m2"/>

position() est maintenant évaluée par rapport à une nouvelle liste de
noeuds qui est (à nouveau) l'ensemble des noeuds
//Product[@Univers=current()/@Univers]

<xsl:template match="Product" mode="m2">

et ce template est sélectionné en permanence.

Pourquoi ne pas écrire plutôt une variation sur le thème:

<xsl:apply-templates
select="//Product[@Univers=current()/@Univers][position() mod 4 = 1]"
mode="tr"/>

...

<xsl:template match="Product" mode="tr">
 <tr>
  <xsl:apply-template select="." mode="colonne" mode="td"/>
  <xsl:apply-template select="following-sibling::Product[1]"
mode="colonne" mode="td"/>
  <xsl:apply-template select="following-sibling::Product[2]"
mode="colonne" mode="td"/>
  <xsl:apply-template select="following-sibling::Product[3]"
mode="colonne" mode="td"/>
 </tr>
</xsl:template>

???

Cordialement,

Eric van der Vlist

-- 
See you in Baltimore.
                                    http://www.xmlconference.org/xmlusa/
------------------------------------------------------------------------
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

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement