Page 1 sur 2
XML (XSLT)
Publié : 26 févr. 2004, 21:05
par Kropotkine
Là j'ai un petit problème qui ne m'était jamais arrivé avant :
Simplement quand je vais sur mon site j'ai ce message d'erreur qui s'affiche :
Code : Tout sélectionner
Erreur lors du chargement de la feuille de style : Une feuille de style XSLT ne possède pas de type Mime XML
et je ne sais vraiment pas quoi mettre dans ma feuille de style pour enlever ca !
PS: ca ne me le fait qu'avec FF pas avec IE et en plus ca ne me le fait que depuis que j'ai mis la feuille de style.
Publié : 26 févr. 2004, 21:05
par Kropotkine
Voici ma feuille de style :
Code : Tout sélectionner
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" method="xml"/>
<!-- Match document -->
<xsl:template match="/">
<xsl:apply-templates mode="copy" select="."/>
</xsl:template>
<!-- Deep copy template -->
<xsl:template match="*|text()|@*" mode="copy">
<xsl:copy>
<xsl:apply-templates mode="copy" select="@*"/>
<xsl:apply-templates mode="copy"/>
</xsl:copy>
</xsl:template>
<!-- Handle default matching -->
<xsl:template match="*"/>
</xsl:stylesheet>
Publié : 26 févr. 2004, 22:06
par Benoit
C'est ton serveur qui envoie le mauvais type MIME, un grand classique. Si tu n'as pas accès à httpd.conf, tu peux peut-être changer ça dans un .htaccess, ou en générant la page en php avec un header() approprié.
Publié : 26 févr. 2004, 22:11
par Kropotkine
J'ai des pages en php ( pour les frames ) et aussi .htaccess ( pour la partie privée ) !
Mais ca ne marche pas qu'avec FF, avec IE et Safari ca fonctionne sans problème ! Alors comment je fais avec header() ?
Publié : 26 févr. 2004, 22:40
par Benoit
Bon heu vu que je ne connais pas bien la syntaxe des fichiers htaccess, je te donne la solution en php : tu renommes ton fichier *.xsl en *.php (en changeant le lien en conséquence) et tu mets au début
Publié : 26 févr. 2004, 22:46
par Kropotkine
Et si ca ne fonctionne toujours pas ?

Publié : 26 févr. 2004, 22:50
par Benoit
Tu devrais au moins avoir une autre erreur, ou bien tu n'as pas changé le lien dans ta page comme je te l'ai dit.
Publié : 26 févr. 2004, 22:59
par Kropotkine
Publié : 26 févr. 2004, 23:01
par Benoit
Publié : 26 févr. 2004, 23:02
par Kropotkine
Je l'ai re-changé pour la re-rendre compatible avec ce "cher" IE !
Publié : 26 févr. 2004, 23:04
par Benoit
Ca n'aurait pas marché avec IE non plus puisque tu as une erreur PHP.
http://www.sefanet.ch/~theo/LeParti.php
Publié : 26 févr. 2004, 23:07
par Kropotkine
'Scuse, j'avais oublié d'enlever la balise XML.
Regarde, le message d'alerte à changer !

Publié : 26 févr. 2004, 23:14
par Benoit
Il ne fallait pas l'enlever, mais le content-type doit être envoyé avant.
Publié : 26 févr. 2004, 23:18
par Kropotkine
Donc logiquement j'aurais ça ?
Code : Tout sélectionner
<?php header("Content-Type: text/xsl"); ?>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" method="xml"/>
<!-- Match document -->
<xsl:template match="/">
<xsl:apply-templates mode="copy" select="."/>
</xsl:template>
<!-- Deep copy template -->
<xsl:template match="*|text()|@*" mode="copy">
<xsl:copy>
<xsl:apply-templates mode="copy" select="@*"/>
<xsl:apply-templates mode="copy"/>
</xsl:copy>
</xsl:template>
<!-- Handle default matching -->
<xsl:template match="*"/>
</xsl:stylesheet>
Publié : 26 févr. 2004, 23:22
par Benoit
Ah oui, sauf que php va vouloir interpréter ton tag XML
Code : Tout sélectionner
<?php
header("Content-Type: text/xsl");
echo '<?xml version="1.0" encoding="UTF-8"?>';
?>
.. devrait fonctionner.