Bonjour,

Déjà désolée si la question a déjà été posée mais je n'ai pas trouvé de réponse.

J'ai besoin de lire un fichier xml, de lui appliquer son xsl pour avoir une belle mise en page et enfin d'afficher le tout dans ma page asp codée en vbscript.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
Dim xmlLogToDisplay, rootChildNodes, strReturn, xmlStyleSheet, oCryptoApi, nodeTemp
 
	'-- Lire un document XML
	Set xmlLogToDisplay = CreateObject("Microsoft.XMLDOM")
	Set xmlStyleSheet = CreateObject("Microsoft.XMLDOM")
 
	'La desactivation du mode asynchrone permet de charger entièrement le document en mémoire avant le traitement
	xmlLogToDisplay.async = "false"
	xmlStyleSheet.async = "false"
	'Charger le document en mémoire
	If xmlLogToDisplay.Load("MonSite/styles/log_xml.xml") Then		
		xmlStyleSheet.Load("MonSite/styles/log_xml.xsl")
 
		strReturn = xmlLogToDisplay.documentElement.transformNode(xmlStyleSheet.documentElement)
 
		Set xmlStyleSheet = Nothing
		Set xmlLogToDisplay = Nothing
	Else
		strReturn = "Le document n'a pas pu être chargé !"
	End If	
 
 
	response.write strReturn
Dans le résultat affiché par la dernière ligne, je n'ai pas tout mon fichier XML : en fait dès qu'il y a une ligne avec un attribut, elle n'est plus affichée.
(Tout ce qui est "forme" ne s'affiche pas )

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type='text/xsl' href='MonSite\log_xml.xsl'?>
<fichier_log xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<log>
		<connexion>
			<date_heure>2010-04-20 09:39:58</date_heure>
			<IP>127.0.0.1</IP>
			<login>guest</login>
		</connexion>
		<demande>
			<forme method="GET">
				<parametre name="strModule"/>
				<parametre name="strAction"/>
				<parametre name="strPw" value="monPass"/>
			</forme>
			<texte>home : access denied</texte>
		</demande>
	</log>
</fichier_log>
Et voilà le xsl que je veux appliquer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
30
31
32
33
34
35
36
37
38
39
40
41
42
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="2.0" 
                xmlns:html="http://www.w3.org/TR/REC-html40"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="html"/>
	<xsl:template match="/">
		<html>
			<head>
			</head>
			<body>
				<table border="1" width="1200px" style="font-family:Arial; font-size:9pt; border-collapse:collapse; border-spacing:0;">
					<tr>
						<th colspan="7">Connexion</th>
						<th colspan="3">Demande</th>
					</tr>
					<tr>
						<th>Date</th>
						<th>IP</th>
						<th>Login</th>
						<th>Paramètres<br />(nom = valeur)</th>
						<th>Texte</th>
					</tr>
					<xsl:for-each select="fichier_log/log">
						<tr>
							<td><xsl:value-of select="connexion/date_heure" /></td>
							<td align="center"><xsl:value-of select="connexion/IP" /></td>
							<td align="center"><xsl:value-of select="connexion/login" /></td>
							<td align="center"><xsl:value-of select="demande/forme/@method" /></td>
							<td>
								<xsl:for-each select="demande/forme/parametre">
									<span><xsl:value-of select="@name" /></span> = <span><xsl:value-of select="@value" /></span><br />
								</xsl:for-each>
							</td>
							<td><xsl:value-of select="demande/texte" /></td>
						</tr>
					</xsl:for-each>
				</table>
			</body>
		</html>
	</xsl:template>
</xsl:stylesheet>
Par contre le xsl ne s'applique pas non plus toutes les valeurs du xml sont collées les unes aux autres...

Voilà, alors si vous voyez d'où provient mon problème je suis preneuse !!
Merci par avance