Pages :
J'ai un site personnel reposant sur le format XHTML+CSS et du PHP/MySQL.

Je souhaiterai le faire évoluer vers le format XML/XSL+CSS. Mais voila j'ai un gros handicap et malgré toute ma bonne volonté XSL me pose problème.
Pour ce qui est de la partie XML pas de problème je sais géré les infos avec ou sans DTD...
Le CSS ne me pose pas de problème, mais le XSL est une grosse difficulté pour moi. En effet hormis les 3/4 exercices classiques que j'ai pratiqué en cours il y a plusieurs mois maintenant, je n'arrive pas à donner la bonne structure à mon fichier XSL
les résultats varient entre un plantage dans la transformation ou alors une transformation qui s'effectue mais d'une manière étrange comme si le processus ne gérait pas certaines de mes balises ex: <div id="toto> </div> ce qui fout tout mon formatage css dans les orties.

De plus j'aimerai que les fichiers soient transformés en format php pour que tout mon code soit interprété.

Sans demandé à quelqu'un de faire tout le boulot, j'aimerai que quelqu'un puisse m'aider ou me code en format xml et (surtout) xsl seulement la page d'intro et la page d'accueil ce qui me permettrait
1. d'avoir une vision d'un fichier xsl plus complexe que ce que j'ai pu voir
2. d'apprendre par l'exemple (et surtout un exemple qui me serve) pour d'autres pages ou sites

Je ne cache pas que j'ai tenté le reverse engineering mais que le résultat ne plait guère car le foutu logiciel que j'ai utilisé (honte sur moi) me donne un fichier xslt donc déjà transformé, ce qui en soit ne m'avance guère.

Si jamais quelqu'un veut bien me filer un chti coup de main je lui en serait fort gré

pour voir les deux pages en questions: http://www.thelastchronicle.com Smiley lol
Décidément... Deux sujets dans la même journée sur le même thème, c'est assez rare.

Si tu veux avoir sous la main quelques informations de plus XSL, tu peux consulter ces liens (je pense que cela ne s'appelle pas à proprement parler de la pub, puisqu'ils figurent dans la liste de ressources sur les standards de ce forum Smiley cligne ):
Page d'accueil XML
Les bases de XSL
Un peu plus que les bases en XSL Smiley cligne

Tu peux par exemple jeter un oeil sur le cours d'intro à XSL, qui donne la structure d'un fichier-type...

Si tu as des questions sur ton sujet particulier, n'hésite pas à revenir à la charge... et à donner des détails!
Salut,

Ta demande est assez claire, sauf sur un point :
a écrit :
De plus j'aimerai que les fichiers soient transformés en format php pour que tout mon code soit interprété.


J'avoue ne pas bien comprendre ce que tu veux là ! D'habitude, l'usage veux plutot que le fichier XML ou XSL soit générer d'une manière ou d'une autre, puis que le fichier XSL transforme le fichier XML en un autre format... si le resultat de cette transformation doit être un fichier PHP qui va devoir être interprété, je pense que tu va plus te prendre la tête qu'autre chose.

En fait, le plus "logique" selon moi, serait d'utiliser PHP comme processeur qui va appliquer la transformation XSL sur ton fichier XML.

Peut tu préciser comment tu t'y prend et ce que tu veux obtenir au final ?
Smiley smile
Tous d'abord merci pour vos réponses si rapides!

Je m'excuse en premier lieu si je n'ai pas été clair sur toute la ligne.

A proprement parler je ne veux pas que le résultat d'un fichier xml+xsl me donne un fichier en php, mais me donne un fichier où le php que j'avais inclus dans mes pages de base (qui sont au format php pour permettre l'interprétation des include comme un compteur de visite, le menu, un questionnaire)
pour schématiser grossièrement xml+xsl(+css)-->php-->(x)html

De surcroît mon site doit devenir bilingue (merci php ^^) et j'aimerai conserver tout le potentiel de mon site.

Ce que je ne comprends pas non plus pourquoi mon fichier css n'est appliqué qu'en partie puisqu'aucune de mes balises div ne reçoit de formatage...

dans l'attente d'un sauveur, je vais tout de même aller consulter les liens que l'on m'a fourni ici

see ya

------------
Comprendre c'est bien appliquer c'est mieux Smiley lol
Slt,

tu te trompes surement (ou alors tu es parti dans un truc délirant) : ton mini schéma signifie qu'à partir d'un fichier XML et d'une feuille de style, tu génères du php et ce code php généré génère ensuite du XHtml.
Ca serait pas plutôt php(xml+xslt) -> XHtml, c'est à dire que tu te sers de php pour effectuer le transformation du fichier xml grâce à la feuille de style Xslt pour produire du XHtml, non ?

a+
ah la la qu'est ce que je sui pas clair des fois

point de départ fichier avec une extension.php mais formaté selon les conventions xhtml+css
dans ces fichiers de départ évidement des include <?php (...)?>

Jusque là on est a priori d'accord

moi je voudrais à terme évoluer vers un format xml+xsl respectant les convention xhtml+css et surtout qui gère les parties du code en php

Pour être plus dans l'exemple: comment gérer un compteur de visite en php dans un format xml+xsl? Smiley langue
salut
ouai en fait je crois que tu a pas bien compris la place de php dans ton aplli

en gros php va incrementer ton compteur de visite, ensuite il pourra generé du xml et ensuite le xml sera transformer par xsl ce qui te donnera du xhtml(enfin ca , ca depande de toi)
bah si je connais la place du php dans l'appli

ce que je veux savoir c'est pour qu'un code comme celui ci:
<?php
include("./visite/visite.php");
print"Total de visiteurs: $compteur<br />";
print"Visiteurs journaliers: $compteur_j<br />";
print"Visiteurs connect&eacute;s: $compteur_c<br />";
?>

soit géré dans mon fichier xsl y'a-t-il une instruction précise pour qu'il soit bien reconnu et géré.

Ensuite je remercie pour les liens que l'on m'a donné j'ai pu faire des exercices de xml/xsl mais j'ai tjs le même soucis: ces exemples sont le plus souvent soit une simple mise en forme du fichier xml soit une mise en forme avec des tableaux hors dans mes pages je n'utilise pas de tableaux parce que les tableaux c'est mal. J'utilise des balises div qui s'appuient sur du css (et mon css n'est pas bien géré par mon fichier xsl)

suis je clair ou pas ^__________^ ; si oui tant mieux, sinon j'irai me flageller pour vous avoir emberlificoter l'esprit Smiley langue
Je pense effectivement que tout n'est pas clair dans ton esprit ^^

On reprend synthétiquement :

- Ton fichier php génère ton fichier xml avec tout ce que tu veux dedans, résultat d'une requête mysql, etc mais tu obtiens bel et bien un fichier xml et don tes données
- Ton fichier php va appliquer ta transformation xslt sur ce fichier xml pour obtenir ton xhtml. Ce fichier xsl peut être générer dynamiquement par php mais il doit avoir comme finalité, un fichier xsl qui donnera la structure à tes données.

Bon c'est pas aussi clair que je le pensais :x
Mais il faut que tu te sortes de la tête de mettre du php dans ton xsl si j'ai bien compris ce que tu voulais dire.

Je pense que ton souci réside dans tes connaissances php qui doivent être un peu limite pour le résultat escompté.
re-salut
si tu veut vraiment faire du php dans un fichier xsl du peut le faire avec Exslt qui est une librairie de libxslt
mais apparement c'est pas la meilleur des pratiques
ce qui peut etre comprhensible
Repartons du bon pied (j'élimine pour le moment toute référence au php)

je veux partir du couple index.xml + index.xsl + index.css
pour obtenir => index.(x)html

jusque là je pense qu'on peut pas faire plus simple
dans les fichiers que j'ai tenté de faire, mon appel au css (puisque le body background s'applique) est pris en compte mais est mal géré: de ce fait aucune de mes balises div n'applique le format censer correspondre.
serait-ce parce que le format <div id="toto"></div> n'est pas le bon et qu'il faudrait plutôt du <div class="toto"></div> ???
Ce n'est pas
index.xml + index.xsl + index.css = index.(x)html
mais
index.xml + index.xsl = index.(x)html [+ index.css]

Le fichier index.css s'applique qu'en dernier temps sur ton fichier (x)html Smiley cligne

edit :
pour l'histoire du choix entre class ou id, tout dépend de l'utilisation que tu compte faire de style : une classe si le style va se répéter dans la page, un id pour un élément unique.
Modifié par piouPiouM (01 Feb 2006 - 23:37)
a priori je comprend le schéma mais je vois pas comment inclure mon fichier css ou plutôt à quel moment

j'ai cherché sur le net et j'ai vu que l'appel au css
<link href="toto.css" rel="stylesheet" type="text/css" />
se mettait entre les balises <head></head> du fichier xsl
est-ce bon ou est ce une erreur?
ça y est je viens de faire une grande avancée pour le css j'ai trouvé ce qui merdait
enfin !!!!!
Voila le problème, j'utilisais ceci:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xdt="http://www.w3.org/2005/xpath-datatypes">
<xsl:output version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="no" media-type="text/xhtml" />

par:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="xhtml 1.0 strict" encoding="ISO-8859-1" doctype-public="-//W3C//DTDXHTML1.0//EN"/>

ce qui m'a mis la puce à l'oreille c'est que firefox affichait bien le css mais pas IE, j'ai donc décidé de revoir les exercices que j'ai fait aujourd'hui et j'ai vu que mon début de code était pas bon Smiley lol

un grand pas donc vers le xml/xsl

Je vais continuer de vous embêter mais je vous remercie déjà pour vos indications qui m'ont fait réfléchir
Avant de se lancer dans l'application de styles CSS, arrive tu à générer une page (x)html conforme ?
Ensuite, si oui, donc l'appel aux feuilles de styles se font au niveau des balises <head></head> effectivement. (à ajouter dans ton fichier xsl si tu génère les balises <html><head></head> etc... dans ce fichier)

Sinon je ne peux que te conseiller d'appronfondir tes connaissances en (X)HTML/CSS car ton problème n'a pas grand chose à voir avec le couple XML/XSL Smiley smile


edit : on a posté en même temps Smiley lol
Ton problème n'avait rien à voir avec CSS en fait donc ^^;
Modifié par piouPiouM (02 Feb 2006 - 00:25)
j'ai réussi à faire marcher mon couple xml/xsl/css ça ne me pose plus de problème
hormis que mon couple xml/xsl n'est pas pleinement optimisé mais ça je trouverai sans problème.
Pour ce qui est du XHTML/CSS je n'ai jamais eu de problème car le site d'alsacréation m'a bien formé. Smiley langue

maintenant que ça a un tant soit peu de gueule la même question me taraude: comment faire pour que mon compteur en php puisse être pris en compte lors de l'affichage
comment faire pour que ce foutu:
<?php
include("./visite/visite.php");
print"Total de visiteurs: $compteur<br />";
print"Visiteurs journaliers: $compteur_j<br />";
print"Visiteurs connect&eacute;s: $compteur_c<br />";
?>

soit pris en compte parce que sans compteur ma page d'intro se sent nue...
Comment est-ce que tu gère l'envoi de tes fichier vers ton navigateur ?

Est-ce que tu envoie ton fichier XML et c'est le navigateur qui fait les transformations ou bien est-ce que les transformation sont faite par un parser placé sur ton serveur ?

Dans tout les cas, tu met ton code PHP dans ton fichier XML. tu renomme ton fichier xml en machin.xml.php dans ton fichier, tu met tout ton bazars de balise XML + ton code PHP au bon endroit et au tout debut de ton fichier XML, avant même la déclaration xml, tu rajoute
<?php
header('Content-type:application/xml');
?>


ATTENTION : Il faut imperativement que tu t'assure que la directive short_open_tag de PHP est descativé (Off) sinon tu vas avoir des problème !
Baldric a écrit :
maintenant que ça a un tant soit peu de gueule la même question me taraude: comment faire pour que mon compteur en php puisse être pris en compte lors de l'affichage
Ta fonctionnalité "compteur" produit un contenu que tu cherches à afficher dans une page web aux cotées d'autres contenus, c'est à dire :
contenu1 + contenu2 +... --> XHTML
En php tu utilisais les includes pour rassembler ces contenus. Maintenant tu as choisi d'utiliser des technologies qui te conduisent au principe :
XML + XSLT --> XHTML
En toute logique, et pour rester dans une architecture propre qui te permettra d'évoluer, je crois que l'évidence (pas forcement la simplicité) conduit à une solution du type :
(XML1 + XML2 + ...) + XSLT --> XHTML
Il te suffit donc de produire avec PHP un fragment XML dont le contenu représente les données de ton compteur.
Ensuite 2 solutions s'ouvrent à toi :
- tu rassembles XML1 et XML2 en un seul fichier XML en utilisant par exemple le DOM XML de php
- tu utilises la fonction document() de XSLT, et dans ce cas c'est la transformation XSL qui réalisera le travail d'assemblage.

Maintenant compte tenu de la simplicité du contenu représenté par le compteur il est encore possible d'envisager autre chose. La norme XSLT prévoit que tout processeur XSLT doit implémenter un mécanisme permettant de passer des paramètres à une transformée XSL. L'api XSL de php respecte cette directive, il te suffit de passer tes données compteur en paramètre. Dans un autre post piouPiouM donne un exemple de code qui te donnera tous les éléments. En particulier intéresse toi à la variable $param (qui est un tableau) pour le passage de paramètres.
En effet, le passage de paramètre est une solution pour faire passer des données générées par PHP aux scripts XSL.

Ce que tu peux aussi faire, Baldric, c'est stocker les données de ton compteur dans une table Mysql et utiliser cette petite API fort sympathique (http://php.chregu.tv/sql2xml/) qui te permet de transformer le résultat d'une requête SQL directement en XML. Si tu pars sur cette solution, je te conseille alors de stocker l'intégralité des données "dynamiques" qui apparraissent sur les pages de ton site dans ta base de donnée. Si tu organises bien tes tables, et qu'il n'y en a pas trop (apparement c'est le cas de ton site) tu peux récupérer toutes les données en une seul requête, que tu transforme en XML via l'API ci-dessus; il ne reste plus qu'a faire la transfo XSL par le biais de ton script PHP pour générer ton XHTML.
Pour résumer : SQL -> XML -> XSL -> XHTML+CSS
Cette solution est un peu "barbare" et pas trés souple dans certains cas Smiley confus

Garde bien à l'esprit que ce type de techno (XSL) est utile dans certains cas, ça peu être bien d'apprendre à les utiliser, mais il ne faut pas jurer que par ça. Perso, je trouve qu'un bon vieu Smarty est pas plus mal; mais ça n'engage que moi Smiley biggrin

Voilou, c'était juste histoire d'apporter ma pierre au post Smiley cligne
Pages :