Bonjour à tous,

Et bien tout est dans le titre, pourquoi sous IE 6 et 7 la page s'affiche sans problème et sous Firefox c'est l'anarchie ? Smiley sweatdrop

http://***/download.xml
http://***/download.xsl

download.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="download.xsl"?>


<download>
	<pack nom="Description pack">
		<description>Description "pack"</description>
		<lien>http://</lien>
		<stat>http://</stat>
		<taille>41.548 Mo</taille>
		<MD5>38EA7EFFD4322A67B5428B72E880E79</MD5>
		<version>1.3.0</version>
		<taillecd>-2.0</taillecd>
	</pack>
	<addon nom="Description addon 1">
		<description>Description "addon" 1</description>
		<lien>http://</lien>
		<stat>http://</stat>
		<taille>29.5 Mo</taille>
		<MD5>2E0B73C06688285BBE0AB8B62349D5E</MD5>
		<version>2.0b</version>
		<taillecd>29.6</taillecd>
	</addon>
	<addon nom="Description addon 2">
		<description>Description "addon" 2</description>
		<lien>http://</lien>
		<stat>http://</stat>
		<taille>687ko</taille>
		<MD5>7A168CD5293891B6B1C44D44B3BDE3E</MD5>
		<version>1.0</version>
		<taillecd>0.687</taillecd>
	</addon>
</download>


download.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:axsl="http://www.w3.org/1999/XSL/TransformAlias">


	<xsl:output method="xml" encoding="ISO-8859-1" indent="yes" />

	<xsl:template match="/download">



		<style type="text/css">
td.td_admin { background-color: #F4F7FD; border: solid 1px #3366CC; border-width: 1px 0px 0px 0px; }
td.td_admin2 { background-color: #FFFFFF; border: solid 1px #3366CC; border-width: 1px 0px 0px 0px; }
td.td_admin4 { background-color: #F4F7FD; border: solid 1px #3366CC; border-width: 1px 1px 0px 0px; }
.tableau { text-align: left; width: 99%; border: 1px solid #3366CC; border-width: 1px 1px 1px 1px;}
td.td_titre { background-image: url("images/td_titre.gif"); font-weight: bold; height: 18px !important; height: 14px;}

h2.titre, h3.titre {  padding: 0; margin: 0; color:#000000; font-size:10px; }
		</style>


		<table class="tableau" cellspacing="1" cellpadding="3" border="0" width="100%">
			<tr>
				<td class="td_titre" align="center" colspan="3"><h2>Le pack</h2></td>
			</tr>
			<xsl:apply-templates select="./pack" />
		</table>
		<p></p>
		<table class="tableau" cellspacing="1" cellpadding="3" border="0" width="100%">
			<tr>
				<td class="td_titre" align="center" colspan="3"><h2>Les Addons</h2></td>
			</tr>
			<xsl:apply-templates select="./addon" />
		</table>

	</xsl:template >

	<xsl:template match="pack">
		<tr>
			<td class="td_admin4" rowspan="2" width="52px" height="52px"><img src="fleche.png" alt="" border="0" /></td>
			<td class="td_admin"><b><xsl:value-of select="@nom"/></b> (<xsl:value-of select="./taille"/>)</td>
			<td class="td_admin">Version <xsl:value-of select="./version"/></td>
			<!--<td class="td_admin" align="center" width="250">A été téléchargé <script language="javascript" src="<xsl:value-of select="./stat"/>"></script> fois</td>-->
		</tr>
		<tr>
			<td class="td_admin2"><u>Description :</u> <xsl:value-of select="./description"/></td>
			<td class="td_admin2" align="center"> <xsl:element name="a" > <xsl:attribute name="href"><xsl:value-of select="./lien"/></xsl:attribute> <xsl:element name="img" > <xsl:attribute name="src">telecharger.gif</xsl:attribute><xsl:attribute name="border">0</xsl:attribute><xsl:attribute name="alt"> Télécharger</xsl:attribute><xsl:attribute name="title">Télécharger l'<xsl:value-of select="@nom"/> </xsl:attribute></xsl:element> </xsl:element></td>
		</tr>
	</xsl:template >
	
	<xsl:template match="addon">
		<tr>
			<td class="td_admin4" rowspan="2" width="52px" height="52px"><img src="fleche.png" alt="" border="0" /></td>
			<td class="td_admin"><b><xsl:value-of select="@nom"/></b> (<xsl:value-of select="./taille"/>)</td>
			<td class="td_admin">Version <xsl:value-of select="./version"/></td>
			<!--<td class="td_admin" align="center" width="250">A été téléchargé <script language="javascript" src="<xsl:value-of select="./stat"/>"></script> fois</td>-->
		</tr>
		<tr>
			<td class="td_admin2"><u>Description :</u> <xsl:value-of select="./description"/></td>
			<td class="td_admin2" align="center"> <xsl:element name="a" > <xsl:attribute name="href"><xsl:value-of select="./lien"/></xsl:attribute> <xsl:element name="img" > <xsl:attribute name="src">telecharger.gif</xsl:attribute><xsl:attribute name="border">0</xsl:attribute><xsl:attribute name="alt"> Télécharger</xsl:attribute><xsl:attribute name="title">Télécharger l'<xsl:value-of select="@nom"/> </xsl:attribute></xsl:element> </xsl:element></td>
		</tr>
	</xsl:template >

</xsl:stylesheet>

Modifié par Spark (12 Nov 2006 - 21:42)
Bonjour.
Essayez :

<xsl:output method="html" encoding="ISO-8859-1" indent="yes" />


a écrit :
... et sous Firefox c'est l'anarchie ?

non, non. C'est ie6 et ie7 qui fait n'importe quoi... Smiley cligne

D'autre part, n'oubliez pas de rajouter les balises html, head title et body, avec une déclaration de doctype, sinon c'est pas valide...
Modifié par GeorgesM (12 Nov 2006 - 15:29)
Ho Smiley eek

Ca faisait des mois que je trainais ce problème.

Merci beaucoup Smiley biggrin

Edite : heu non pas de problème, juste une confusion de ma par Smiley sweatdrop
Modifié par Spark (12 Nov 2006 - 15:52)
[ mode énigmatique ON ]
Effectivement, il n'y avait pas de problèmes... Smiley lolol

[ mode énigmatique OFF ]
Modifié par GeorgesM (12 Nov 2006 - 15:57)
GeorgesM a écrit :
[ mode énigmatique ON ]
Effectivement, il n'y avait pas de problèmes... Smiley lolol

[ mode énigmatique OFF ]



Je vais expliquer, un second problème avait fait son apparition, j'ai, dans un 1er temps, crus que cela venais de la modif mais il n'en est rien, c'était ma faute. Smiley lol



Sinon pour le doctype, je ne sais pas le mettre. J'ai essayé de mettre ce qui était proposé (dans le xml) par le validateur mais plus rien ne va après. Smiley ohwell
Ce n'est pas dans le xml, mais dans la feuille de style:


&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;

<html xmlns="http://www.w3.org/1999/xhtml">
...


Il faut l'écrire comme ça, c'est à dire avec les entités &lt; et &gt; pour que ça fonctionne.
Modifié par GeorgesM (12 Nov 2006 - 17:37)
Merci de ton aide, mais je n'y arrive pas, je sais pas où le mettre dans mon code pour que la page continu de fonctionner.
Il faut le placer dans le template principal, en l'occurence c'est <xsl:template match="/download">

<xsl:template match="/download">
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>download</title>
</head>
<body>
		<style type="text/css">
...
		</table>
</body>
</html>
</xsl:template >

Modifié par GeorgesM (12 Nov 2006 - 18:45)
Merci mais que ce sois mes tests (mettre le doctype dans <xsl:output) ou la solution que tu propose, j'ai sans cesse la même réponse du validater :

No DOCTYPE found!


Je ne comprend pas pourquoi il s'emble y avoir plusieurs solution et au finale rien ne fonctionne Smiley ohwell
Je pense que, en transformant de cette façon, c'est à dire de manière "passive" côté client, le code source que reçoit le validateur est le code xml.
Dans ce cas, ce code n'est pas validable html ou xhtml...

Pour rendre la page validable, il faudrait effectuer la transformation du côté serveur, avec php, et faire valider le résultat.

Mais, est-ce nécessaire ?

La déclaration du doctype permet d'être sûr de la façon avec laquelle le navigateur va interpréter le code transformé. (cf différences d'interprétations des boites html4 / xhtml par ie.)

a écrit :
(mettre le doctype dans <xsl:output)

Oui, effectivement, c'est la meilleur méthode. Je suis bête. Smiley mur
Modifié par GeorgesM (12 Nov 2006 - 19:16)
Voici comment je résous le problème en général:

<xsl:output method="xml" version="1.0" encoding="ISO-8859-1" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/xhtml1-strict.dtd" indent="yes" omit-xml-declaration="yes"/>

Et plus loin à la main l'encodage de caractères dans le head:

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />


J'ajoute omit-xml-declaration car avec un type de sortie xml, la transformation ajoute le prologue XML (ce qui est désagréable à IE dans un fichier XHTML). Du coup, cela fait disparaître l'encodage de caractère (qui avec un type de sortie XML n'apparaît que dans le prologue), et il faut donc l'ajouter à la main dans l'entête HTML...