IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

Insérer du XML dans du HTML


Sujet :

XML/XSL et SOAP

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Insérer du XML dans du HTML
    Bonjour,

    J'ai un petit problème avec mon code XML. J'utilise un fichier Java qui permet de transformer le log d'un server Apache en fichier XML. Cependant le code généré apparaît comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0"?>
    <?xml:stylesheet type="text/xsl" href="style.xsl"?>
    <ServerLog>
    	<Visitor IP="68.142.249.150" accessDate="26/Apr/2005:02:27:40 +0200" request="GET /robots.txt HTTP/1.0" statusCode="404" fileSize="277" referrer="-" userAgent="Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"/>
    	<Visitor IP="68.142.250.196" accessDate="26/Apr/2005:02:27:40 +0200" request="GET /de/guestbook/gaestebuch.php HTTP/1.0" statusCode="404" fileSize="294" referrer="-" userAgent="Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"/>
    </ServerLog>
    Je ne sais pas à quel norme de codage cela correspond.

    Mon problème : je dois créer un fichier xsl pour mettre tout ça en forme et tous les tutoriels que j'ai trouvés fonctionnent sur un fichier xml de norme ISO. Tel que celui là que j'ai modifié:
    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
     
    <?xml version="1.0"?>
    <!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by Gilles (Hevs) -->
    <?xml:stylesheet type="text/xsl" href="style.xsl"?>
    <ServerLog>
    	<Visitor>
    	<IP>68.142.249.150</IP>
    	<accessDate>26/Apr/2005:02:27:40 +0200</accessDate>
    	<request> GET /robots.txt HTTP/1.0" statusCode="404"</request>
    	<fileSize> 277</fileSize>
    	<referrer> - </referrer>
    	<userAgent> Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp) </userAgent>
    </Visitor>
    	<Visitor>
    	<IP>68.142.250.196</IP>
    	<accessDate>26/Apr/2005:02:27:40 +0200</accessDate>
    	<request> GET /de/guestbook/gaestebuch.php HTTP/1.0</request>
    	<fileSize> 294</fileSize>
    	<referrer> - </referrer>
    	<userAgent> Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp) </userAgent>
    </Visitor> 
    </ServerLog>
    Existe-t'il un moyen de convertir un fichier XML d'une norme à une autre. Ou Comment modifier mon fichier XSL pour qu'il reconnaisse la norme d'origine.

    Voici le fichier XSL (fortement inspiré du tuto)
    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
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by Gilles (Hevs) -->
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:template match="/">
    		<html>
    			<body style="font-family:Arial; font-size:12pt;">
    				<xsl:for-each select="ServerLog/Visitor">
    					<div style="background-color:teal; color:white;">
    						<span style="font-weight:bold; color:white; padding:4px">
    							<xsl:value-of select="IP"/>
    						</span>
    					</div>
    					<div style="margin-left:20px; font-size:10pt">
    						<span> Date d'acces <xsl:value-of select="accessDate"/>
    						</span>
    						<span style="font-style:italic"> : Requete = <xsl:value-of select="request"/>
    						</span>
    					</div>
    				</xsl:for-each>
    			</body>
    		</html>
    	</xsl:template>
    </xsl:stylesheet>
    D'avance merci

    Shaman LizardKing

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    il n'est pas question d'encodage (l'encodage désigne en principe la façon dont les caractères sont encodés en interne, cf. UTF-8, etc.)

    Les deux fichiers XML que tu présentes sont identiques en ce qu'ils contiennent les mêmes informations, la seule différence étant que dans un cas on les trouvent dans un élément, dans l'autre dans un attribut. Du point de vue de XSLT, cela ne change pas grand-chose, il faut juste adapter les requêtes XPath en conséquence.

    Pour obtenir la valeur d'un attribut, il suffit d'utiliser le préfixe @ (qui est un raccourci pour désigner l'axe XPath attribute). Tu peux donc adapter ton XSLT de la façon suivante :

    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
    <?xml version="1.0" encoding="ISO-8859-1"?> 
    <!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by Gilles (Hevs) --> 
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
       <xsl:template match="/"> 
          <html> 
             <body style="font-family:Arial; font-size:12pt;"> 
                <xsl:for-each select="ServerLog/Visitor"> 
                   <div style="background-color:teal; color:white;"> 
                      <span style="font-weight:bold; color:white; padding:4px"> 
                         <xsl:value-of select="@IP"/> 
                      </span> 
                   </div> 
                   <div style="margin-left:20px; font-size:10pt"> 
                      <span> Date d'acces <xsl:value-of select="@accessDate"/> 
                      </span> 
                      <span style="font-style:italic"> : Requete = <xsl:value-of select="@request"/> 
                      </span> 
                   </div> 
                </xsl:for-each> 
             </body> 
          </html> 
       </xsl:template> 
    </xsl:stylesheet>

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Ok merci

  4. #4
    Futur Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Déjà merci pour le tips d'avant ca marche impec et j'ai pu créer une feuille de style XSL. c'est vraiment bien !

    Maintenant j'ai besoin d'insérer ce que j'ai créé dans un page HTML.

    J'ai trouvé sur http://conforme.phidji.com/conforme_article.asp?id=1092001 comment le faire, mais ca marche pas vraiment, mon tableau est vide.

    j'ai insérer ca dans ma page HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <xml id="eWebLogReport" src="eWebLog.xml"> </xml>
    Puis
    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
     
    <table border="1" datasrc="#eWebLogReport">
    					 <tr bgcolor="#9acd32">
    						<th align="left"> Host </th>
    						<th align="left"> Country </th>
    						<th align="left"> Hits </th>
    						<th align="left"> Visits </th>
    						<th align="left"> Bandwidth </th>
    					</tr>
    				  	<tr>
    						<td> <span datasrc="#eWebLogReport" dataFld="@Host"></span></td>
    						<td> <span datasrc="#eWebLogReport" dataFld="@Country"></span></td>
    						<td> <span datasrc="#eWebLogReport" dataFld="@Hits"></span></td>
    						<td> <span datasrc="#eWebLogReport" dataFld="@Visits"></span></td>
    						<td> <span datasrc="#eWebLogReport" dataFld="@Bandwidth"></span></td>
    					</tr>
    				  </table>
    J'ai essayé avec ou sans le @ mais ca change rien. Qu'est-ce qui cloche ? Je précise que tous les fichiers sont dans le même dossier.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Insérer variable Javascript dans code HTML
    Par raptorman dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 23/05/2007, 12h06
  2. [XSLT] lien sur xml dans page html
    Par paquita dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 20/10/2006, 13h14
  3. Traiter et injecter du XML dans du HTML en "live"
    Par narnou dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 22/02/2006, 08h27
  4. [XML] Insérer du XML dans un fichier HTML
    Par tafkap dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 14/11/2005, 00h14
  5. Insérer du XML dans une page HTML
    Par Shaman LizardKing dans le forum XML/XSL et SOAP
    Réponses: 14
    Dernier message: 04/05/2005, 07h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo