RE : Re: RE : Re: RE : Re: pbm: xsl:variable

"MAGNA Pascal" <[email protected]>
Newsgroups gmane.text.xml.french.tech
Message-ID <6D1AEC3456FCEE41951B2874053E9B28046F4C37@scmex-clipper.cneti.caisse-epargne.fr>
Merci pour cette réponse, j'essaye ça lundi et vous tiens au courant ....

MAGNA Pascal
CNETI/DECI
Tel : 01.58.40.23.11
EMail : [email protected]


-----Message d'origine-----
De : [email protected] [mailto:[email protected]] De la part de Eric van der Vlist
Envoyé : jeudi 6 avril 2006 17:14
À : [email protected]
Objet : [xml-tech] Re: RE : Re: RE : Re: pbm: xsl:variable


Le jeudi 06 avril 2006 à 16:51 +0200, MAGNA Pascal a écrit :
> Pour cela j'ai créé un template creat_rub dans lequel je créé mes 6 
> éléments. Le code et la valeur sont dans le doc xml, la longueur, 
> libellé et alpha ou num se trouvent "en dur" dans la feuille xsl et la 
> position au lieu d'être "en dur" dans la feuille je préfèrerais la 
> calculer, comme dans un doc excel
> Rub 	Lg 	Pos
> 1	2	1
> 2	5	3
> 3	18	8
> 4	1	26
> ...
> 
> J'espère avoir été un peu plus clair.

Oui. Il ne faut pas confondre .xsl et .xls :) et contrairement à Visual Basic, XSLT vous force à raisonner de manière ensembliste...

Vous aurez beaucoup de mal à faire ce que vous voulez faire avec des templates nommés et das variables (dont vous ne pouvez pas changer la
valeur) et je vous conseille plutôt d'utiliser la transformation elle même comme une source ce données.

La transformation suivante ;

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:data="http://ns.xmlfr.org/xslt/data/" version="1.0" exclude-result-prefixes="data">
    <xsl:output media-type="xml" indent="yes"/>
    <data:rubriques>
        <data:rubrique lg="2"/>
        <data:rubrique lg="5"/>
        <data:rubrique lg="18"/>
        <data:rubrique lg="1"/>
    </data:rubriques>
    <xsl:template match="/">
        <rubriques>
            <xsl:apply-templates select="document('')/*/data:rubriques/data:rubrique"/>
        </rubriques>
    </xsl:template>
    <xsl:template match="data:rubrique">
        <rubrique>
            <rub value="{position()}"/>
            <lg value="{@lg}"/>
            <position value="{sum(preceding-sibling::*/@lg) + 1}"/>
        </rubrique>
    </xsl:template>
</xsl:stylesheet>

génère :

<?xml version="1.0" encoding="utf-8"?>
<rubriques>
   <rubrique>
      <rub value="1"/>
      <lg value="2"/>
      <position value="1"/>
   </rubrique>
   <rubrique>
      <rub value="2"/>
      <lg value="5"/>
      <position value="3"/>
   </rubrique>
   <rubrique>
      <rub value="3"/>
      <lg value="18"/>
      <position value="8"/>
   </rubrique>
   <rubrique>
      <rub value="4"/>
      <lg value="1"/>
      <position value="26"/>
   </rubrique>
</rubriques>

qui est si j'ai bien compris ce que vous souhaitez obtenir.

Par contre, je ne comprend pas bien comment vous voulez faire le lien avec les informations contenues dans le document source...

Cordialement,

Eric van der Vlist
-- 
GPG-PGP: 2A528005
Le premier annuaire des apiculteurs 100% XML!
                                                http://apiculteurs.info/
------------------------------------------------------------------------
Eric van der Vlist       http://xmlfr.org            http://dyomedea.com
(ISO) RELAX NG   ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------


-- Attached file included as plaintext by Ecartis --

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQBENTBLDvn+ZCpSgAURArB+AKCjsHpKrvwqsOpbf1VHDwGIr4Yr5QCeLYrH
oeIH8M4x/a19NKsr72HPuKA=
=qLBM
-----END PGP SIGNATURE-----


--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !

Liste de diffusion "[email protected]" (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 [email protected]
(mailto:[email protected]?Subject=unsubscribe)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.