Prob avec Javascipt et accssoirement xml

Signaler
Messages postés
1
Date d'inscription
mercredi 28 août 2002
Statut
Membre
Dernière intervention
28 août 2002
-
Messages postés
36
Date d'inscription
lundi 22 avril 2002
Statut
Membre
Dernière intervention
12 décembre 2005
-
Mon probl est 2 niveaux
- je dispose d'un fichier xml et celui-ci ne comporte pas de rfrence un fichier Xsl (masque d'affichage), je voudrais trouver un moyen de lier les deux fichiers (le Xml est fourni par un tier et le Xsl par moi)
- S'il nexiste pas de solution directe au premier problme j'avais pens 'tout simplement' lire le fichier source Xml et le recrire modifi sur mon site (mais l, je sais pas trop comment faire)

Si quelqu'un pouvait m'aider

PS: J'oubli mon provider ne supporte pas les langage volu (asp, php,....) mais bon a je peux facilement contourner si il le faut.

Thepp

1 réponse

Messages postés
36
Date d'inscription
lundi 22 avril 2002
Statut
Membre
Dernière intervention
12 décembre 2005

Si ton navigateur possede un moteur XSL tu peux l'ecrire en javascript :

<XML id="XMLDatas">

<?xml version="1.0"? src="essai.xml"></XML>
<XML id="FeuilledeStyle" src="essai.xsl"></XML>

<SCRIPT LANGUAGE="JavaScript">

function transformationXMLavecXSL()
{
document.body.innerHTML = XMLDatas.transformNode(FeuilledeStyle.XMLDocument);
}
</SCRIPT>

Sinon il faut utiliser un moteur XSL cote serveur
la tout dépens du langage mais c'est facile, apres c'est juste une question de gout et de disponibilité de l'extension
en ASP --> toujours la : moteur IE
en PHP / JSP --> expat

exemple en php
$th = @xslt_create() or die("Can't create XSLT handle!");
$XML_File = $URL_Data."/data.xml";
$xh = fopen($XML_File, "r") or die("Can't open XML file");

$XSL_File = $URL_Data."/index.xsl";
$sh = fopen($XSL_File, "r") or die("Can't open XSL file");

$XML_Content = fread($xh, filesize($XML_File));

$XSL_Content = fread($sh, filesize($XSL_File));

xslt_process($XSL_Content, $XML_Content, $XSL_Transformation);

echo $XSL_Transformation;

@xslt_free($th);
fclose($HTML_File_Index);