Page 1 sur 1

XML XSL et Mise en page...

Posté : 01 déc. 2005, 19:03
par Ic3Cub3
Voici mon fichier XML :
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="logall.xsl"?><IceCube><visite>
<Date>01-12-2005 17:38:50</Date>
<IP>80.200.195.xxx</IP>
<Host></Host>
<PROXY>80.200.195.xxx</PROXY>
<OS>Windows XP</OS>
<Browser>Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.7.10) Gecko/20050717 Firefox/1.0.6</Browser>
<Langue>fr</Langue>
<Referer>http://membres.lycos.fr/nonameyet/</Referer>
<Page>http:///nonameyet/xxx.php</Page>
</visite><visite>
<Date>01-12-2005 17:38:54</Date>
<IP>80.200.195.xxx</IP>
<Host></Host>
<PROXY>80.200.195.xxx</PROXY>
<OS>Windows XP</OS>
<Browser>Mozilla/5.0 (Windows; U; Windows NT 5.1; fr-FR; rv:1.7.10) Gecko/20050717 Firefox/1.0.6</Browser>
<Langue>fr</Langue>
<Referer>http://membres.lycos.fr/nonameyet/xxx.php</Referer>
<Page>http:///nonameyet/xxx.php</Page>
</visite></IceCube>
Et voila mon fichier XSL :
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>LoGs des connectés</h2>
<table border="1">
<tr bgcolor="#7898AD">
<th>Date</th>
<th>IP</th>
<th>Host</th>
<th>PROXY</th>
<th>OS</th>
<th>Browser</th>
<th>Langue</th>
<th>Referer</th>
<th>Page</th>
</tr>
<xsl:for-each select="IceCube/visite">
<xsl:sort select="Date"/>
<tr>
<td>
<xsl:value-of select="Date"/>
</td>
<td>
<xsl:value-of select="IP"/>
</td>
<td>
<xsl:value-of select="Host"/>
</td>
<td>
<xsl:value-of select="PROXY"/>
</td>
<td>
<xsl:value-of select="OS"/>
</td>
<td>
<xsl:value-of select="Browser"/>
</td>
<td>
<xsl:value-of select="Langue"/>
</td>
<td>
<xsl:value-of select="Referer"/>
</td>
<td>
<xsl:value-of select="Page"/>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Hello,
Quand on lance le fichier XML, cela me crée un tableau.
Mais comment imposer la taille des cellules ?
J'ai beau mettre des WIDTH dans le fichier XSL rien n'y fait je n'arrive pas a imposer une taille de cellule precise.
Quelqu'un sait il m'aider ?
Merci d'avance ;)

Posté : 04 déc. 2005, 09:34
par ddbug
Par defaut lorsque tu crées ta table au tout debut, celle ci est a un width
défini a 100%. Ors comme tes textes (Browser en particulier qui est tres long) sont sur ligne, tout est figé. et tes width au niveau de tes td n'ont
aucune influence (mais ils marchent .... ).
Fixe une table de largeur 200% ou 300% :p et la tes width
fonctionneront. Le mieux serait quand même de mettre ton texte browser sur 2/3 lignes ou de ne pas afficher ttes tes infos sur une même ligne.

Bon WE

Posté : 04 déc. 2005, 14:04
par Ic3Cub3
J'avais testé cela aussi, et rien n'y fait cela ne fonctionne pas correctement.
Et de meme pour les HEIGHT cela deconne.
C'est tres etrange....et cela me fais beaucoup chier.....

Posté : 04 déc. 2005, 14:11
par Cyrano
Est-ce qu'il y a quelque chose qui t'empèche d'utiliser un style CSS où tu pourrais définir les dimensions de ton tableau voire même de tes cellules ?

Posté : 04 déc. 2005, 14:14
par Ic3Cub3
Non, mais puis je avoir un fichier XSL et CSS pour la mise en page d'un meme XML, et ce les deux en meme temps ?

Posté : 04 déc. 2005, 14:20
par jeff
tout a fait, ca fonction sans pb tu definit ton css dans le xsl

Posté : 04 déc. 2005, 14:21
par Ic3Cub3
En fait je voudrais plus savoir si l'on sait combiner XSL et CSS pour un meme fichier XML ?
Ensuite peut on le faire dans un meme fichier , histoire de ne pas avoir six milles fichiers a gérer....

Posté : 04 déc. 2005, 14:22
par Ic3Cub3
Ok jeff ;) merci

On a repondu en meme temps :p

Je vais tester cela de suite

Posté : 04 déc. 2005, 14:27
par Ic3Cub3
Cela ne me donne rien de bien helas :(

Voila mon fichier CSS :
Date
 { height:20px;
   width:130px;
 }
IP
 { width:200px;
   height: 20px;
 }
Host
 { width:200px;
   height: 20px;
 }
PROXY
 { width:200px;
   height: 20px;
 }
Browser
 { width:200px;
   height: 20px;
 }
Langue
 { width:200px;
   height: 20px;
 }
OS
 { width:200px;
   height: 20px;
 }
Referer
 { width:200px;
   height: 20px;
 }
Page
 { width:200px;
   height: 20px;
 }
Et la ligne que je rajoute dans le XSL :
<?xml-stylesheet type="text/css" href="MonFichier.css" ?>
Mais helas, la mise en page reste pareil :S

Posté : 04 déc. 2005, 15:00
par jeff
moi j'ai fait comme ceci, je pense pas que ce soit top mais ca marche
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output encoding="iso-8859-1" indent="yes" method="html"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
<xsl:template match="/">
<html>
<head> 
<style type="text/css" media="screen"> 
	 @import url(actu.css);
	
</style>
</head>
<body>
<xsl:apply-templates select="//item">
<xsl:sort data-type="number" select="guid" order="descending" />
</xsl:apply-templates>
</body>
</html>
</xsl:template>
<xsl:template match="item">
<div>

Posté : 04 déc. 2005, 16:23
par ddbug
<table border="1" width="200%">

<td width="10"> (si tu augmente ca bouge :P )

g pas mieux au niveau ou j'en suis coté xsl .... :wink:

bon courage a tous, je suis vos solutions

Posté : 04 déc. 2005, 17:15
par Ic3Cub3
Effectivement ddbug, cette methode fonctionne pour IE mais helas pas pour FireFox...
C'est bien tout la mon probleme

Posté : 05 déc. 2005, 20:30
par Ic3Cub3
De meme le classement que j'effectue dans mon XML avec mon XSL ne s'opere pas sous FireFox..... :(