21-02-2007, 11:58 AM
Alors là je suis vraiment impressionné par ta démonstration Roworll...
21-02-2007, 11:58 AM
Alors là je suis vraiment impressionné par ta démonstration Roworll...
21-02-2007, 12:15 PM
C'est surtout le XSL qui impressionne.
J'ai peut être oublié de préciser mais avec ça, on peut avoir une profondeur infinie (merci la récursivité). Je me suis servi d'un système similaire pour faire une Faq sur un site. A partir d'un XML qui contient la Faq proprement organisée, j'ai ressorti une table des matières indentée, le contenu de la Faq et bien sur les liens internes sur la page (index -> contenu)
Quand on te dit qu'un projet est terminé à 90%, prépare toi pour les 90% suivant
Ninety-Ninety Rule "Une guerre de religions, c'est quand deux peuples s'entretuent pour savoir qui a le meilleur ami imaginaire" Vu sur IRC
21-02-2007, 01:04 PM
(Modification du message : 21-02-2007, 01:42 PM par Sephi-Chan.)
Damned c'est trop pratique, ça évite de se faire chier avec PHP pour afficher ou pas les éléments parents -_- !
Par contre le JS ne fonctionne pas sur Opéra (ce lien mène à un screen du message d'erreur) mais j'ai quand même pu l'apprécier sur IE et FF . Comment as-tu assimiler tout ça en XSL ? As-tu des conseils de sites, livres, etc. ? Autre question : Quand on affiche la source, on garde du XML, genre <nom id=6> et tout. Y a-t-il un moyen pour vraiment avoir du xHTML en sortie (même dans la source) ? Sephi-Chan, need!
Opera pose en effet encore quelques problèmes avec le XSL. On part d'une requete qui affiche toutes les classes d'un type donné : /page/classes/class[@type=$type]Leur processeur n'est pas super au point. Par exemple, il fait sauter les HTMLCollections associées aux Forms (pas terrible pour un contrôle des données en JS) Le problème sur la page de démo est que Opera est incapable de trouver correctement les nextSibling suite à la transformation XSL. La même page en 100% HTML fonctionne très bien sous Opera. J'ai appris tout ce que je sais en XSL en faisant le tours de site Web (principalement le http://www.w3schools.com/xsl) et en faisant des tests, plein de tests. J'en découvre encore d'ailleurs. la dernière révélation étant la possibilité de faire des requêtes "imbriquées" dans le XSL lui même. Je m'explique : Code PHP :
A partir de ce résultat, on filtre les membres ayant cette classe. : /page/members/member[class=... Que du bon... Pour la source de la page, par défaut, on voit apparaître le XML. IE lui est même parfois incapable d'afficher quoi que ce soit. Les outils de développement de FF par contre peuvent afficher la source générée de la page (le XHTML donc). Cela nécessite l'installation du plugin correspondant. Au pire, on peut toujours se consoler avec l'explorateur DOM qui montre correctement la structure de la page générée.
Quand on te dit qu'un projet est terminé à 90%, prépare toi pour les 90% suivant
Ninety-Ninety Rule "Une guerre de religions, c'est quand deux peuples s'entretuent pour savoir qui a le meilleur ami imaginaire" Vu sur IRC
21-02-2007, 01:48 PM
Oui oui mais je parle d'avoir carrément le code source en HTML au lieu du XML.
En tout cas merci pour ton lien, j'irais voir. Le système de requêtes m'intrigue, j'y comprend rien avec les chemins ^^. Déjà que DOM c'était pas mon fort (surtout à cause des incompatibilités)... En fait c'est plus utilise que je ne le pensais XML/XSL... Et moi qui me limitait à croire que c'était juste à la mode pour "remplacer" le couple xHTML/CSS... Je m'étais fourvoyé ). Sephi-Chan
21-02-2007, 02:59 PM
il est vrai que la demo est pas mal du tout
car moi je me demandais si jallais reussir a fair les noeuds deroulant ...
22-02-2007, 11:50 AM
En essayant de m'exercer chez moi je me suis rendu compte que la feuille XSL présentée ici ne fonctionnait pas du tout en l'état (le nom des balises n'a pas l'air identique au XML).
Roworll, si tu me lis, pourrais-tu eclaircir quelques points s'il te plaît ?
Je sais que ça fait beaucoup de questions mais j'aimerai vramient comprendre les ficelles de ce langage. Je te remercie d'avance, Sephi-Chan
Il est possible en effet que cela ne corresponde plus. J'ai fait quelques changements à la volée et la version online est différente du code ici.
Rentrons dans le détail : Code : <xsl:import href="reference.xsl" /> Code : <xsl:template name="node"> Il en existe en gros deux sortes. - Les templates 'Fonction' qui prennent des paramètres (comme celui au dessus). - Les templates 'Nommés' qui s'appuient sur une branche spécifique de ton arborescence XML Il n'y a jamais de retour de valeur avec les templates. Dans le code exposé, le template s'appelle "node" et prends trois paramètres : name, parent et level Code : <xsl:if test="count(//nom[@parent=$parent])>0"> Point intéressant : un paramètre peut contenir une valeur fixe ou toute une branche de l'arbre XML. Code : <ul class="ul_{$level mod 2}"> Cependant, il ne s'utilise que sur les attributs en ligne des tags HTML. La syntaxe équivalente (<ul class="ul_<xsl:value-of select="$level mod 2" />"> ) pose un problème d'interprétation au processeur XSL car le select utilise un délimiteur " identique au délimiteur d'attribut. { } permet donc de s'affranchir de ce problème. Pour info, j'essaye de faire un petit tuto XSL pour la réalisation d'une FAQ.
Quand on te dit qu'un projet est terminé à 90%, prépare toi pour les 90% suivant
Ninety-Ninety Rule "Une guerre de religions, c'est quand deux peuples s'entretuent pour savoir qui a le meilleur ami imaginaire" Vu sur IRC
Je viens de remettre a jours le code que j'expose dans mon message d'origine.
J'ai aussi corrigé le problème lié à Opera. Le problème vient du fait que après une transformation XSL, Opéra considère chaque lettre d'un texte comme un élément (sibling) d'ou l'incompatibilité avec le code. Il a sufft d'enfermer l'élément dans un <span> et adieu le problème. N'oubliez pas de faire CTRL+R pour forcer le rechargement de la dernière version.
Quand on te dit qu'un projet est terminé à 90%, prépare toi pour les 90% suivant
Ninety-Ninety Rule "Une guerre de religions, c'est quand deux peuples s'entretuent pour savoir qui a le meilleur ami imaginaire" Vu sur IRC |
|