[PHP] XML output wordt niet goed weergegeven

Pagina: 1
Acties:
  • 118 views sinds 30-01-2008
  • Reageer

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Topicstarter
Ik probeer PHP een XML document te laten maken. Het vreemde is dat IE het niet parsed. Als ik hem in IE open zie ik gewoon plain text. Stop ik vervolgens die source van die tekst in een .xml bestand en open ik deze weer met IE, dan wordt ie wel juist weergegeven. Dit lijkt een Content-Type probleem, omdat IE niet 'ziet' dat er een XML aankomt. Maar volgens mij hebt ik die jij ingesteld:
PHP:
1
2
3
4
5
<?
header ("Content-Type: text/xml"); 
header ("Pragma: no-cache");
echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";
?>

Hierna volgt de DOCTYPE en dan de inhoud van de XML zelf.

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
ik ben niet zo bekend met die headers enzo, maar ik heb het wel voor elkaar gekregen zonder headers en andere truucs een .php file aan te roepen die gewoon strakke geparsde XML uitpoept in IE. Eerst lukte het mij ook niet, maar dat kwam volgens mij doordat ik per ongeluk een lege string uitprintte of een sessie startte voordat ik echo(xmlobject->dumpmem()); aanriep. Dus zeker weten dat je nog niks hebt verstuurd en dan werkt het (met php_domxml) heel simpel.

Verwijderd

Doe us:
PHP:
1
2
3
<?
echo '<?xml version="1.0" encoding="ISO-8859-1" ?>\n';
?>

Misschien helpt dat

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Topicstarter
Helpt niet echt, maar volgens mij is de inhoud van de XML zelf niks mis mee. Als ik namelijk de source van de XML in een .xml bestand stop, en in IE open, dan wordt ie wel goed weergegeven.

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Topicstarter
Op maandag 10 september 2001 16:14 stuurde Genoil mij een ICQ Express bericht

Zou je die source van die PHP willen geven, probeer ik hem ff. Alvast bedankt!

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 15-09 23:45
ok, effe an het testen geslagen.
PHP:
1
2
3
4
5
6
<?
header("Content-Type: text/xml");
header("Pragma: no-cache");
echo '<?xml version="1.0" encoding="ISO-8859-1"?>';
echo '<hello>how are you</hello>';
?>

pakte IE de eerste keer ook niet als xml data.

Toen ik de source opende met IE, herkende die wel dat het XML was. Toen ik daarna het php ding refreshde, gaf ie keurig de XML als XML :?

Omdat ik eerst dacht dat de Content-Type header niet goed door kwam, heb ik een pagina gemaakt om te kijken welke headers terug komen van een web-server:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
// Calls this page with a host and path parameter, representing the remote host
// and the path to the file to get the header from.

function remote_header($host,$path)
{
    $fp = fsockopen ($host, 80, $errno, $errstr, 30);
    @fputs ($fp, "HEAD $path HTTP/1.0\r\n");
    @fputs($fp,"HOST: $host\r\n\r\n");
    while (!feof($fp)) {
        @$string = fgets ($fp,128);
        $header = strtolower("$header|$string");
    }
    fclose ($fp);
    return $header;
}

echo "<blockquote><code>";
print_r(str_replace("|", "<br>", remote_header(addslashes($host), addslashes($path))));
echo "</code></blockquote>";
?>

Bovenstaand schript is trouwens niet helemaal van mij, maar hiet op GoT gevonden en aangepast ;)

  • bloody
  • Registratie: Juni 1999
  • Laatst online: 22:24

bloody

0.000 KB!!

php gebruikt de expat parser van Clark.
dat ding heeft nog wat vage trekjes (zoals jij die beschrijft?)

wellicht is het verstandig om de src van php er even bij te pakken en dan in de etc/xml dir te kijken hoe een en ander in elkaar zit.

ow, en probeer voor de gein de encoding eens op utf-8 te zetten.

suc6

nope


  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Topicstarter
Moet je bij een XML een DOCTYPE opgeven, of is dit niet verplicht? Wat is precies het voordeel?

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • Rense Klinkenberg
  • Registratie: November 2000
  • Laatst online: 15-09 23:45
Op maandag 10 september 2001 19:13 schreef jelmervos het volgende:
Moet je bij een XML een DOCTYPE opgeven, of is dit niet verplicht? Wat is precies het voordeel?
Als je het niet doet, werkt het ook allemaal.

Ik maak m'n XML bijna altijd d.m.v. de DOMXML van PHP en daar heb ik nog geen funcite kunnen ontdekken om de DOCTYPE mee aan te geven. Toch werkt dat allemaal best ok.

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Topicstarter
Op maandag 10 september 2001 20:00 schreef freak007 het volgende:

[..]

Als je het niet doet, werkt het ook allemaal.

Ik maak m'n XML bijna altijd d.m.v. de DOMXML van PHP en daar heb ik nog geen funcite kunnen ontdekken om de DOCTYPE mee aan te geven. Toch werkt dat allemaal best ok.
Ik maak dus geen gebruik van die DOMXML, maar maak zelf de XML op. Maar volgens mij werkt het nu allemaal wel goed. Wat ik heb veranderd weet ik niet precies meer. :)

"The shell stopped unexpectedly and Explorer.exe was restarted."

Pagina: 1