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.

xml tech : Technologies XML

[xml-tech] Re: XSL : comparaison lexicographique de chaine de caracteres ?

[xml-tech] Re: XSL : comparaison lexicographique de chaine de caracteres ?

Auteur: <Benoit.Lefevre@reuters.com>
Date: 16/12/2004 - 09:57
X-Mailer: Lotus Notes Release 5.0.8 June 18, 2001

Bonjour.

      Souhaitant rendre une transformation compatible avec la derniere
      version de Transformiix embarque dans FireFox, je suis donc limite
      a du XSL 1.0 tout ce qu'il y a de plus classique.

      Aucune chance d'utiliser xsl:fonction pour definir un operateur de
      comparaison, et encore moins un exslt:node-set :(

      Dommage, cette feuille de style fonctionnait bien sous I.E.

      Mon problem est le suivant :

      Voici la liste de mes neouds en entree :

            <dir @name="0">
                  <file @name="6"/>
                  <file @name="4"/>
                  <dir @name="9"/>
                  <file @name="1"/>
                  <file @name="7"/>
                  <dir @name="10"/>
                  <dir @name="8"/>
                  <file @name="2"/>
                  <file @name="5"/>
                  <file @name="3"/>
            </dir>

      Je souhaiterais les ventiler dans un <table> HTML de largeur donnee.

      Il faut que le nom des noeuds fils dans dir[@name = '0'] soient affiches dans
      ce tableau dans le sense de lecture "classique" (gauche a droite / haut en bas)
      tries par type puis par nom.

      Sur mon exemple ca devrait donner graphiquement ceci (largeur de 3) :

            | D8 | D9 | D10 |
            | F1 | F2 | F3 |
            | F4 | F5 | F6 |
            | F7 |

      J'ai beau chercher, je ne vois pas comment faire vue les contraintes.

      Est-ce envisageable de generer du HTML en passant par un output de type
      text ?

      Cela me permettrait peut etre de m'abstraire du fait qu'il faut un tag fermant
      </tr> en vis a vis d'un tag ouvrant <tr> pour obtenir une feuille de style valide
      et ainsi traiter les cas particulier de debut de ligne et de fin de ligne dans des
      template distincts (i.e. differents modes).

      J'ai peur que dans ce cas la (si il est envisageable) mon processeur XSL
      ne me renvois plus un DOM mais une simple string :((

Benoit.

                                                                                                                                                                           Eric van der Vlist To: xml-tech@xmlfr.org <vdv@dyomedea.com cc: > Subject: [Spam] [xml-tech] Re: XSL : comparaison lexicographique de chaine de caracteres ? Sent by: xml-tech-bounce@x Header: Internal Use Only
                                          mlfr.org 16/12/2004 08:07 Please respond to xml-tech
                                                                                                                                                                                             

Bonjour,

Le jeudi 16 décembre 2004 à 03:47 +0100, Benoit Lefevre a écrit :
> Bonjour.
> Pour une obscure raison, je souhaiterais creer un index comme suit :
>
> <xsl:key name="sortIndex" match="//*[@name]" use="count( //*[ @name ][ @name &lt; current()/@name ] )" />
>
> Si je part du principe que tous les @name sont differents dans mon
> document, cela me permettrait de disposer d'une notion d'ordre
> lexicographique sans passer par un <xsl:sort>
>
> Seulement voila, l'operateur "<" ne semble pas fonctionner comme je
> l'espre dans ce cas la.
>
> Il fait tout sauf une comparaison base sur une notion d'ordre lexicograhique.
>
> Si j'ai bien compris la norme a ce sujet, quand aucun des deux operandes
> n'est de type node-set, alors les deux sont transformes en chiffre avant que
> la comparaison soit effectuee.

Exactement.

> Ai je mal interprete la norme ?

Non, je ne pense pas.

> Quelqu'un aurait-il une idee pour resoudre ce probleme ?

A priori, je ne vois pas comment faire en une seule passe et
personnellement, j'essayerais de trier les données (en utilisant
xsl:sort qui est la seule fonctionnalité de XPath/XSLT 1.0 qui attribue
un ordre aux chaînes de caractères) dans un premier temps avant de
constituer l'indexe.

Suivant le contexte, je passerais par un document intermédiaire ou bien
j'utiliserais une extension "node-set()".

Dans ce deuxième cas, il faudrait tester le support de xsl:key (et la
portabilité de ce support) lorsque les clés sont appliquées à des node
sets générés oar la fonction d'extension et, dans la négative, se passer
de clés.

Cordialement,

Eric van der Vlist

--
Tired of typing XML tags?
                                                       http://wikiml.org
------------------------------------------------------------------------
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
------------------------------------------------------------------------
--
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)
-----------------------------------------------------------------
        Visit our Internet site at http://www.reuters.com
Get closer to the financial markets with Reuters Messaging - for more
information and to register, visit http://www.reuters.com/messaging
Any views expressed in this message are those of  the  individual
sender,  except  where  the sender specifically states them to be
the views of Reuters Ltd.
--
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)
Received on Thu Dec 16 10:59:16 2004

Archive générée par hypermail 2.1.8 le 31/12/2004 - 11:12 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