Forum TourDeJeu · Règles du forum | Aide Recherche Membres |
Bienvenue invité ( Connexion | Inscription ) | Recevoir à nouveau l'email de validation |
okami |
Ecrit le : Dimanche 30 Juillet 2006 à 21h16
|
||||||
Kid Groupe : Membre Messages : 27 |
En voulant faire un premier site statique simple en XML/XSLT pour apprendre à manier cette technologie, j'ai été pratiquement dès le départ confronté à un problème tout bête. J'ai imaginé que la manière la plus simple de structurer le site et de gérer le menu serait de faire autant de fichiers XML que de pages web et de se débrouiller pour appeler à chaque fois le même menu pour faire la navigation. Au début j'ai imaginé mettre le menu dans la feuille XSL. Ca marche très bien sauf que je n'ai pas trouvé de moyen simple pour mettre en valeur la page sur laquelle se trouve le visiteur. Le seul moyen que j'ai trouvé est de mettre dans le fichier XML...
...pour signifier que je voulais que soit affiché un menu avec le lien vers la page d'accueil (par exemple) mis en valeur parce que l'internaute est dessus. Sauf que pour utiliser cette information dans le fichier XSL, je me retrouve à tester ligne par ligne s'il faut affiche de manière spéciale ou pas chaque lien du menu :
(le code ci-dessus met un "title" spécial à la page active, c'est juste pour tester que j'arriver à modifier les attributs du lien vers la page active) Ca marche... mais je trouve ça lourd. Une autre solution serait que le l'élément "menu" du fichier XML contienne lui-même, en plus de l'attribut "actif", la liste des éléments de la navigation (les titres des différentes pages du site et leurs adresses) car je pense pouvoir me débrouiller ensuite, avec un for-each dans le fichier XSL, pour bien tout afficher, avec un seul test (dans la boucle for-each) plutôt qu'avec autant de test qu'il existe de page dans le site. Comme la liste de éléments de navigation et commune à tout le site, j'aurais aimé en faire un fichier externe que j'appelle dans chaque page xml de mon site. Après pas mal de recherche je me suis rendu compte que les XLink ne marchait pas (c'est fantastique le nombre de sites qui décrivent comment fonctionne XLink en omettant de préciser que Firefox et MSIE ne les interprètent pas... Ca limite tout de même la porté à un traitement purement serveur et non client, c'est pas rien !). J'ai vu alors que la seule solution qui me restait c'était d'utiliser les entités externes DTD. Je le fais avec remord parce que pour moi les DTD c'est une technologie du passé et je pensais tout faire en XSD, m'enfin bon... Le problème est que je n'arrive pas à faire fonctionner ça sous Firefox. Le code suivant, que j'ai simplifié au maximum, fonctionne parfaitement sous MSIE mais pas sous Firefox 1.5.0.5 (l'entité est remplacée par du vide)
(le fichier tmp.txt est une fichier texte comprennant un texte bateau)
J'ai essayé avec des adresses absolues mais c'est pas mieux. À noter que si l'entité n'est pas externe (c'est-à-dire que je vire le mot "SYSTEM"), tout marche comme prévu : "&test;" est remplacé par "tmp.txt". Est-ce que qqn peut me donner des conseils sur les manière de gérer un menu dans un site web XML statique et/ou me dire pourquoi le code ci-dessus ne marche pas sous Firefox ? Sauvez les derniers cheveux qui me restent ! |
||||||
okami |
Ecrit le : Dimanche 30 Juillet 2006 à 22h37
|
||||||
Kid Groupe : Membre Messages : 27 |
J'ai finalement trouvé un moyen pour incorporer le menu dans la feuille XSL sans multiplier les instructions. Je fais un fichier menu.xml
Dans le fichier accueil.xml, j'introduis :
Dans le fichier XSL, je modifie mon modèle :
Bref, j'ai chargé ma ressource externe dans le fichier XSL puisque je n'arrive pas à faire dans le fichier XML (et, de fait, c'est sûrement mieux pour ce que je voulais en faire). Si qqn a une réponse sur l'incorporation d'une ressource externe dans un fichier XML, je suis toujours prenneur... |
||||||
Haram turval |
Ecrit le : Lundi 31 Juillet 2006 à 14h34
|
Pro Groupe : Membre Messages : 126 |
Le premier exemple que tu donnes (avec ENTITY et SYSTEM) ne fonctionne pas sous FF.
C'est un des défauts du navigateur qui ne supporte pas encore tous les standards XML/XSL. Pour le reste, je ne vois pas d'autre méthodes. J'utilise moi même XML/XSL et je fonctionne à grands coups de référencement de fichiers XML externes. Ca permet une plus grande modularité. -------------------- Tant va la cruche à l'eau qu'à la fin elle est mouillée.
|
Manest |
Ecrit le : Mercredi 02 Août 2006 à 19h00
|
Ouf Groupe : Membre Messages : 503 |
J'en profite pour glisser des ressources XML (et compagnie) interessantes d'un prof que j'ai eu.
http://disc.inria.fr/perso/philippe.poulard/cours/cours.html Plein de choses interessantes. -------------------- |