2010-06-18 5 views
0

Je génère un flux XML avec un DomDocument. J'ai besoin du flux XML pur, donc je ne veux pas changer le code source avec une transformation xsl. Néanmoins, je veux que les gens puissent «lire» le XML dans leur navigateur sans faire un clic droit-> Voir la source.PHP DOmDocument, XML et CSS - impossible de le faire fonctionner

Alors ce que je fais est que je crée un DomDocument et ajouter une instruction de traitement:

$css = $xml->createProcessingInstruction("xml-stylesheet", "type=\"text/css\" href=\"xml.css\""); 
$xml->appendChild($css); 

Puis-je ajouter tous mes articles. Le XML résultant ressemble à ceci:

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/css" href="xml.css"?> 
<OBJECT> 
    <OBJECTNAME>Mi Casa</OBJECTNAME> 
    <OBJECTID>1</OBJECTID> 
    <DATES> 
    <DATE> 
     <ID>5</ID> 
     <STAYFROM>05.08.2010</STAYFROM> 
     <STAYTO>15.08.2010</STAYTO> 
    </DATE> 
    </DATES> 
</OBJECT> 

ici est le lien vers le fichier XML d'origine:

http://www.todasmisreservas.com/service/rss.php?obj=1type=res&status=confirmed&xsl=1

et voici mon css:

OBJECT { 
background-color: #555555; 
width: 100%; 
} 

OBJECTNAME { 
display: block; 
margin-bottom: 30pt; 
margin-left: 0; 
} 

OBJECTID { 
color: #FF0000; 
font-size: 20pt; 
} 

DATES { 
color: #0000FF; 
font-size: 20pt; 
} 

STAYFROM, STAYTO, ID { 
display: block; 
color: #aa0000; 
margin-left: 20pt; 
} 

Je ne peux pas obtenir pour que le fichier css affecte le XML de quelque façon que ce soit. Qu'est-ce que je fais mal?

Merci

Maenny

+0

-vous envoyer le code XML sous forme de texte/html ou text/xml? – Gordon

+0

son echo $ xml-> saveXML(); , donc je suppose que c'est le texte/xml. – Maenny

Répondre

0

Ok pour tout le monde avec le même problème, j'ai finalement trouvé une solution:

Lors de la diffusion d'un flux XML de php assurez-vous non seulement d'avoir un fichier XML valide , mais aussi pour envoyer un HTTPResponse-Header comme:

header("content-type: text/xml; charset=utf-8"); 

Ensuite, cela fonctionne.

Greetz