Pages :
(reprise du message précédent)

je viens de tester avec ton fichier zip.
je ne suis pas à la page avec aspx (pour l'instant j'utilise asp avant de me mettre à php...), donc j'ai réécrit le transformation en asp (je te l'a mets plus bas si ça peut aider ?).

avec
document('http://www.orkos.com/tests/commentaires.xml')


j'ai l'erreur suivante :

a écrit :
Erreur lors de l'analyse de « http://www.orkos.com/tests/commentaires.xml ». Aucune donnée n'est disponible pour la ressource spécifiée.


pourtant le fichier est bien accessible quand je tape l'adresse dans mon navigateur.

avec :
document('commentaires.xml')
ou
document('C:\testPourDocument\commentaires.xml')


ça marche très bien, j'obtiens bien :
<p>Nom1</p>
<p>commentaire1</p>


Mais apparement ça ne marche pas non plus chez toi avec ces url... Smiley decu

Dernière piste avant que je ne sêche, sais tu quel parser xml est utilisé sur le serveur ? reconnais-il bien la fonction document() ?
en effet selon que tu fais la tranformation xml/xsl sur le client (par javascript ou avec un lien vers la xsl dans le xml) ou sur le serveur, ce n'est pas le même parser qui est utilisé, ça expliquerait pourquoi la même tranformation fontionne d'un côté mais pas de l'autre.... enfin je dis ça c'est vraiment à court d'idée...

J'espère que tu vas trouvé, bon courage !


PS : le code de transformation asp que j'ai utilisé :
	Dim objXML, objXSL
	set objXML= Server.CreateObject("MSXML2.FreeThreadedDOMDocument")
		objXML.async = false
		objXML.load Server.MapPath("noms.xml")
	set objXSL= Server.CreateObject("Msxml2.XSLTemplate")
		objXSL.async = false
		objXSL.load Server.MapPath("test.xsl")
	
	Response.write objXML.transformNode(objXSL)
	
	Set objXML=Nothing
	Set objXSL=Nothing
a écrit :
Dernière piste avant que je ne sêche, sais tu quel parser xml est utilisé sur le serveur ?


C'est quoi un parser XML ?
parser ou analyseur xml, c'est le moteur qui fait la transformation xml/xsl (notamment), il ouvre le fichier xsl le charge dans sa mémoire (RAM) sous forme d'objet "virtuel" (objDOM_DOCUMENT) et applique les instructions xsl sur le fichier xml qu'il a aussi chargé de la même manière, il en résulte un nouveau objet virtuel, l'objet de sortie, le "output", le résultat qui peut être un objet de type xml, html ou text. Tu peux alors lui dire d'écrire ce output dans une page web (ou ailleurs) : c'est ce que tu fais dans ton fichier aspx :
Response.write(mm_xsl.Transform())


Bref le parser c'est celui qui est capable de "lire" du xml et du xsl (qui est du xml), on dit aussi qu'il "serialise" le xml : il transforme le TEXTE de ton xml en une série d'objets (objDOM_DOCUMENT est une série de objDOM_NODE) avec des méthodes et des fonctions pour manipuler ses objets.

Sans parser, xml et xsl ne sont que du texte.
Il faut que tu saches quel parser tu utilise lors de tes transformations, ne serait ce que pour connaitre ses limites, ses possibilités ses méthodes ou fonctions native que tu pourras utiliser (si besoin c pas très conseillé pour la portabilité) dans tes xsl. Ex : avec le parser msxml tu peut itérer sur une variable de type node-set en faisant <xsl:for-each select="msxsl:node-set($var)/foo"/>

Enfin je te laisser chercher sur google.

PS : il y a plusieurs méthode pour sérialiser un document xml, le DOM (document objet model) en est une mais il y a aussi SAX et d'autres encores.
J'avais également le même problème que Mattmatt c'est à dire le message "Aucune donnée n'est disponible pour la ressource spécifiée.
" dans une page ASP. Pour le résoudre il suffit d'ajouter la ligne <<objXML.setProperty "ServerHTTPRequest", true>> juste après la ligne <<objXML.async = false>> et après cela fonctionne très bien.
Bon courage à tous
Pages :