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

Eric van der Vlist <[email protected]>
Newsgroups gmane.text.xml.french.tech
Organization Dyomedea (http://dyomedea.com)
Message-ID <[email protected]>
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-----
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.