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 < 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