Bonjour,

J'ai une petite page html qui me permet de visualiser le contenu d'un fichier xml, cette page est séparé en deux frame et dans chacune d'elle je souhaite afficher le contenu d'un meme fichier xml mais avec un fichier xsl différent : lepremier affiche un résumé du contenu et le second une version complete.
Actuellement je suis obligée de copier le fichier xml manuellement a chaque modification et ensuite je modifie dans le second fichier le lien xsl.

Voici le contenu de ma page html
<HTML> 
<HEAD>  
 		<TITLE>Recettes diverses </TITLE> 
</HEAD>  
<frameset cols='300,*' FRAMEBORDER='no' BORDER='0'>  
		<FRAME SRC='recette_liste.xml' NAME='liste' noresize target='_self'>  
 		<FRAME SRC='recette_page.xml' NAME='recette' noresize>  
		<NOFRAME>Ce navigateur ne suporte pas les frames.</a>.
		</NOFRAME> 
</FRAMESET> 
</HTML>


Serait-il possible dans le noeud frame de spécifier quel xsl charger au lieu de l'indiquer dans le xml ?

J'ai également tenté d'utiliser les inclusions de fichier xml mais ca n'a pas marché : je deplace alors le contenu xml dans un fichier unique que j'inclue dans les fichiers recette_liste.xml et recette_page.xml

Contenu du fichier recette_page.xml lors de l'utilisation de l'inclusion :

<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet type="text/xsl" href="recette_page.xsl"?>  
<livre xmlns:xi="http://www.w3.org/2001/XInclude"> 
<xi:include href="recette.xml"/>
</livre>


Debut et fin du fichier recette.xml lors de l'utilisation de l'inclusion :

<?xml version='1.0'?>
<groupe link="plats">
.......
</groupe>

Modifié par MllBouclette (18 Nov 2007 - 10:53)
Modérateur
Salut,

Je ne comprends pas pourquoi tu as besoin de plusieurs feuilles xsl. Smiley sweatdrop

Si tu crées ton frameset dans celle-ci, rien ne t'empêche de te servir du même fichier xml.

Par ailleurs, il serait préférable de faire ta transformation côté serveur et non de laisser le client l'effectuer afin de ne pas dépendre de la configuration utilisateur. Tu peux trouver un exemple de transformation (parmi tant d'autres) ici.

PS : C'est obligatoire le frameset ?
Smiley rolleyes
si jamais une autre solution pourrait s'avérer utile, tu pourrais aussi passer un paramètre en php à ton document XML

genre: fichier.xml?style=style1

et dans ton fichier xml,
tu peut mettre au tout début

<?php
header("Content-type: application/xml");
$style = $_GET['style'];

print('<'.'?xml version="1" encoding="Iso-8859-1" ?'.'>');
?>


et tu fais pareil qu'à la ligne 5 (je crois) pour le lien vers ta feuille de style XSLT
Sauf qu'à la place de mettre la cible de cette feuille en "lettres" directement, tu écris plutôt $style'.xsl'

ce qui permet par exemple d'appeler 'style1.xsl'