Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/01/2008, 11h29   #1
Nouveau Membre du Club
 
Développeur Web
Inscription : novembre 2007
Messages : 141
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2007
Messages : 141
Points : 34
Points : 34
Par défaut Problème de formatage XSL

Bonjour,

Je rencontre actuellement un soucis en voulant formater un fichier XML avec XSL, le tout dans une page ASP... Pensant que mon problème venait du XSL, j'ai tout d'abord posté dans le forum concerné, mais en continuant mes recherches, je suis tombée sur plusieurs exemples qui font presque ce que je fais et qui le font de la même manière en XSL, donc le problème ne doit pas venir de là...

Voici le contexte : j'ai un template XSL défini dans un fichier nommé common.xsl. Ce fichier est inclut dans un autre (nommé "test.xsl") par la directive "import" de XSL. Le fichier test.xsl est appliqué à un fichier XML via le script ASP suivant :
Code :
1
2
3
4
5
6
7
8
<%
set oXsl = Server.CreateObject("MSXML2.DOMDocument.6.0")
oXsl.load(Server.MapPath("test.xsl"))
set oXml = Server.CreateObject("MSXML2.DOMDocument.6.0")
oXml.load(Server.MapPath("test.xml"))
Response.Write(oXml.transformNode(oXsl))
set oXsl = nothing
%>
(pour le reste des sources, je vous mets le liens vers mon autre topic, pour ne pas tout poster en double) Le soucis est qu'au moment de la transformation, XSL ne trouve pas le template défini dans le fichier inclut et j'obtiens une erreur...

Ma question ici est : Le problème peut-il venir de la façon dont ASP gère tout ça ? Ou dois-je encore chercher dans une autre direction ? (je ne vois pas trop laquelle d'ailleurs...)

Merci d'avance, je galère vraiment avec ce truc !

EDIT: De plus, lorsque je teste directement la transformation dans le navigateur avec la directive
Code :
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
Tout fonctionne sans problème... Donc le problème doit quand même venir d'ASP...
Laewella est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2008, 17h46   #2
Nouveau Membre du Club
 
Développeur Web
Inscription : novembre 2007
Messages : 141
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : novembre 2007
Messages : 141
Points : 34
Points : 34
Bon, j'ai fini par trouver une solution !

Il semblerait que la méthode que j'ai utilisé à la base n'inclut pas les XSL importée ou incluse. Par contre, si l'on utilise un XSLTemplate, l'inclusion se fait automatiquement... Voici un exemple de code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
' -- Chargement du XSL
set oXslDoc = CreateObject("Msxml2.FreeThreadedDOMDocument")
oXslDoc.async = false
oXslDoc.load(Server.MapPath("test.xsl"))
 
' -- Création du XSLTemplate
set oXslT = CreateObject("MSXML2.XSLTemplate")
set oXslT.stylesheet = oXslDoc
 
' -- Création du processeur
set oXslProc = oXslT.createProcessor()
 
' -- Libération de la mémoire
set oXslT = nothing
set oXslDoc = nothing
 
' -- Chargement du XML
set oXml = Server.CreateObject("MSXML2.DOMDocument")
oXml.async = false
oXml.load(Server.MapPath("test.xml"))
 
' -- Transformation du XML
oXslProc.input = oXmlDoc
oXslProc.transform()
Response.Write oXslProc.output
 
' -- Libération de la mémoire
set oXml = nothing
set oXslProc = nothing
Voilà, en plus cette méthode permet de gérer les paramètres de la feuille XSL ce qui est un plus non négligeable
Laewella est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h56.


 
 
 
 
Partenaires

Hébergement Web