XML XSL et Mise en page...

Eléphant du PHP | 105 Messages

01 déc. 2005, 19:03

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 ;)

Eléphanteau du PHP | 18 Messages

04 déc. 2005, 09:34

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
dd-bug (#)

@softibox.com

Eléphant du PHP | 105 Messages

04 déc. 2005, 14:04

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.....

Mammouth du PHP | 19672 Messages

04 déc. 2005, 14:11

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 ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 105 Messages

04 déc. 2005, 14:14

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 ?

Mammouth du PHP | 1311 Messages

04 déc. 2005, 14:20

tout a fait, ca fonction sans pb tu definit ton css dans le xsl

Eléphant du PHP | 105 Messages

04 déc. 2005, 14:21

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....

Eléphant du PHP | 105 Messages

04 déc. 2005, 14:22

Ok jeff ;) merci

On a repondu en meme temps :p

Je vais tester cela de suite

Eléphant du PHP | 105 Messages

04 déc. 2005, 14:27

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

Mammouth du PHP | 1311 Messages

04 déc. 2005, 15:00

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>

Eléphanteau du PHP | 18 Messages

04 déc. 2005, 16:23

<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
dd-bug (#)

@softibox.com

Eléphant du PHP | 105 Messages

04 déc. 2005, 17:15

Effectivement ddbug, cette methode fonctionne pour IE mais helas pas pour FireFox...
C'est bien tout la mon probleme

Eléphant du PHP | 105 Messages

05 déc. 2005, 20:30

De meme le classement que j'effectue dans mon XML avec mon XSL ne s'opere pas sous FireFox..... :(