Salut à tous,

Voila,je me pose un question existencielle sur le xslt...
Mais d'abord le contexte :
Je suis en train de développer un portail web en php5/mysql/xhtml/css et dernierement je me suis interressé au xslt pour la gestion du cache et affichages alternatifs.
Seul probleme, je n'arrive pas à tout capter au niveau conception...
D'apres ce que j'ai pu constater dans les docs et autres textes que j'ai lu sur xslt, grosso modo, on transforme des données xml en un contenu mis en page via le fichier xsl (jusque là je ne pense pas me planter ^^)

Mes questions sont les suivantes :

- un fichier xml est statique, aucun contenu dynamique, Or pour gérer un site dynamique avec un fichier statique c'est chaud non ?
Un exemple pour illustrer mon interrogation : imaginons que j'utilise xslt pour formater mes blocs (parties de menu affichées à gauche du site,bloc login, bloc infos, bloc menu...)
Si je souhaite par exemple afficher le nom d'utilisateur loggé, je l'ai dans le baba car son nom je ne dois pas le mettre dans un xml vu que d'autres users peuvent etre connectés aussi. Donc comment intégrer un tel contenu dans quelque chose par definition statique ?

- Comme mon site est modulaire, tout est décomposé :
1) une page index de depart qui pointe vers 4 parties decrites en 2)
2) 4 parties distinctes : logo, menu, centre, pied de page qui pointent tous vers des elements distincts
3) ces elements distincts peuvent avoir plusieurs autres éléments distincts.
Bref, ce genre d'imbrication n'est-il pas contradictoire avec le xslt ? De plus ils sont tous assez dynamiques.

- Au pire, je pourrais jongler et utiliser ma methode maison pour ce qui est dynamique (parser un modele html en y injectant mes données dynamiques) puis utiliser le xslt pour ce qui est statique (articles, forum...)
Par contre, mon probleme est que j'aurais vraiment beaucoup apprecié utiliser xslt d'un bout à l'autre afin de pouvoir jongler entre differents types d'affichages (pc, handled, mobile...)

Donc bon, pour le moment je suis un peu dans le flou artistique et j'aurais eu besoind d'un (ou plusieurs) avis de personnes connaissant bien ce domaine (et plsu particulierement le domaine du dynamique voire carrement du portail web modulaire) afin de m'aider à comprendre un peu mieux tout ca.

Merci d'avance Smiley lol
@ bientot
Slt,

tu as faux sur la définition de Xslt : c'est un language XML qui permet de transformer un arbre XML source en un autre arbre XML, ou en texte. Il ne s'agit en aucun cas de mise en page.

Tu as encore faux quand tu dis que un fichier XML est statique : je génère souvent du code XHtml (qui est du XML) avec php, et donc dynamiquement.

En fait, je ne vois pas l'intérêt de Xslt dans ton application. Pour l'affichage pour les différents types d'affichages, il y a CSS.

Maintenant, tu confond peut être Xslt avec FO (Formatting Object, XSL-FO) qui est une sorte de pdf (c'est pour l'impression en gros) et qui n'a donc rien à faire en tant que page web. Xslt transforme, FO met en page.

Voilà j'ai l'impression que c'est assez confus XML/Xslt/Xhtml pour toi donc si tu as des questions précises, n'hésite pas Smiley lol

a+
Salut,

Merci pour ta reponse.
Alors en effet, je comprend bien ce que tu expliques et c'est ce que j'avais compris à l'origine.
En effet, vu que je fais du xhtml (transitional) je sais que c'est du xml appliqué au web et justement, je trouvais interressant le xslt vis à vis de cela car il permettait de pouvoir séparer le coté données du coté presentation (fichier xml : seulement les données, fichier xslt -> formattage des données avec les balises que l'on souhaite...)
De plus, xslt etant recursif, ca m'arrangeait bien, m'enfin c'est une autre histoire.

Pour l'histoire du statique, je me suis mal exprimé :
en fait c'etait surtout pour marquer la différence entre des données générées à la volée (affichage du nom d'utilisateur loggé...) par rapport à des données inscrites dans un xml (d'autant plus que là si je voulais faire ce systeme de génération de xml pour afficher mon nom d'user, il faudrait que je génere un fichier par user loggé...le bordel quoi)

l'interet dans mon application ? bah c'est justement là ou je me posais la question... je ne suis pas certain de trouver l'interet donc je cherche dans les docs les diverses applications possibles... et demande les avis sur les forums.
L'interet auquel je pense aurait été de mettre en cache des infos via le xml, et ensuite de proposer diverses présentations (chose qui n'est pas entierrement possible avec le css sans passer par du position-absolute, notamment quand tu affiches plusieurs divs, tu ne peux pas vraiment changer leur ordre d'apparition sans ca, et là le xsl aurait pu etre interressant).

Fo n'a pour moi aucun interet dans ce que je cherche à faire (ou alors juste pour presenter des articles pour impression ou autres...mais bon avec le css je peux m'en sortir).

Bref, pour revenir à nos biquets, je ne sais pas trop encore si je dois intégrer une telle chose ou pas à mon site web... lol

N'existe-t-il pas des exemples vraiment concrets de l'utilisation de xslt quelque part ? pas des petits cas pratiques comme des fiches de cinema ou autre, m'en fout... mais un vrai cas ou ils utilisent xslt ?

Merci d'avance !
@ bientot, j'espere plus dans le brouillard cette fois ci ^^
Slt,

ce que tu cherche est sans doute le passage de paramêtre. Tu peux avec PHP par exemple passer des paramêtres à une feuille de style Xslt. Après tu n'a plus qu'à les déclarer en éléments de premier niveau :
<xsl:stylesheet ...>
<xsl:output .../>

<xsl:param name="parametre-venant-de-php"/>
<xsl:param name="parametre2-venant-de-php"/>
<!-- etc -->

<!-- et après : -->
<xsl:template name="login">
<xsl:value-of select="$parametre-venant-de-php"/>
</xsl:template>

</xsl:stylesheet>


a+
Re !

Beh en fait coté syntaxe de code... ok, j'avais deja vu ça ^^ merci bien tout de meme.
Mais en fait on va dire que ma question de façon générale portait surtout sur l'interet d'utiliser xslt dans un tel projet en fait ^^
Je pense que je vais cogiter tout ca dans mon coin, et essayer de voir à quel niveau ce serait interressant et là ou ca ne l'est pas.

Merci en tout cas pour vos reponses
++
Bah en fait je vois pas vraiment l'intérêt... le modèle habituel fonctionne plutôt bien non ?

++
ok, c'est ce que j'avais fini par me dire...
Je me demandais si je voyais juste ou si j'etais passé à coté de quelque chose ^^
Merci !

@++
SirWam a écrit :
En fait, je ne vois pas l'intérêt de Xslt dans ton application. Pour l'affichage pour les différents types d'affichages, il y a CSS.
Lorsque CSS couvre les différences à extérioriser c'est parfait, mais sincèrement, il faut avoir de bien maigres besoins pour se contenter de CSS.
Comme le souligne justement zax-tfh, il se peut très bien que les variations souhaitées touchent à la structure du document final, dans ce cas XSLT est bien venue.
Il se peut également que la mise en page dépende du contenu (je parle des noeuds texte, pas des éléments xhtml), et dans ce cas XSLT est bien pratique également.

Un exemple basic. Supposons que si mon menu contient "contenu A" je souhaite l'avoir en horizontal et s'il contient "contenu B" je le veux en vertical. XSLT permet alors de choisir les règles CSS qui vont bien.

Autre exemple plus riche : prendre en compte un lexique pour "styler" le vocabulaire correspondant présent dans des pages web. Voici une petite transformation xsl qui fait tout ça très bien.
zax-tfh a écrit :
en fait c'etait surtout pour marquer la différence entre des données générées à la volée (affichage du nom d'utilisateur loggé...) par rapport à des données inscrites dans un xml (d'autant plus que là si je voulais faire ce systeme de génération de xml pour afficher mon nom d'user, il faudrait que je génere un fichier par user loggé...le bordel quoi)
C'est tout le contraire, je veux dire ça n'est pas le bordel du tout, au contraire. Tu peux très bien avoir pour une page de nombreux contenus XML dont certains sont générés dynamiquement (nom de l'utilisateur loggé par ex) et XSLT te permet de rassembler l'ensemble de ces fragments de contenus.

Personnellement je pratique de cette façon. Un site web est représenté par un arbre XML (modèle), chaque noeud de l'arbre pouvant être un contenu visible sur le site. Dans ce cas un noeud est lui même défini comme une collection de contenus XML générés automatiquement ou pas. XSLT me permet de rassembler l'ensemble des contenus, puis d'appliquer une couche de styles/mise en page dont les règles et la complexité dépassent largement les capacités CSS.