Es geht diesmal im Gegensatz zu Text um XML lesen und verarbeiten. Dazu habe ich ein Script gefunden und wollte den XML-Output durch PHP generieren lassen. Geht aber nicht.
Auch ein Versuch die Ausgabe statisch als XML.html zu nutzen bringt kein Erfolg. Einzig wenn ich die Ausgabe als Datei mit der Endung .xml nutze, funktioniert alles wie gewünscht.
Jede HTTP-Antwort wird mit einer Content-Type-Angabe versehen, die über die Art der gesendeten Daten Auskunft gibt. Bei normalen Dateien entscheidet der Webserver üblicherweise anhand der Dateiendung, welche Content-Type-Angabe gesendet wird.
Wenn du deine Datei XML.html benennst, taucht der Endung .html entsprechend "Content-Type: text/html" im Antwortkopf auf. Daran hält sich der Browser (wenn's kein IE ist) und du kannst nicht erwarten, dass er Daten, die du als HTML kennzeichnen lässt, als XML verarbeitet.
PHP gibt automatisch text/html aus, sofern nichts anderes im Skript definiert wird.
Es kann also von Haus aus weder mit XML.html, noch mit XML.php etwas in .responseXML auftauchen, nur mit XML.xml.
Nach allem was ich gelesen habe müsste es doch gehen, allenfalls ein MIME-Type-Problem,
Sehe ich auch so.
doch dafür habe ich auch nochmal extra die Header im php gesetzt, ohne Erfolg.
Den musst du nicht "nochmal extra" setzen, den _musst_ du setzen, siehe oben.
<?php
header('Content-Type: text/xml');
header ('Cache-Control: no-cache');echo '<?xml version="1.0" encoding="utf-8" ?>
<Response>
</Response>
';die();
?>
Jetzt mal abgesehen davon, dass die() am Ende des Skriptes restlos überflüssig ist, ist es soweit in Ordnung und sollte machen, was du wünscht.
Besorge dir Firefox und dazu die Firefox-Erweiterung Firebug. Firebug hat eine Netzwerkseite, auf der du jede Anfrage und die Antwort dazu genau nachverfolgen kannst. Prüfe damit, ob dein Skript wirklich das sendet, was es senden soll, namentlich die Content-Type-Angabe text/xml. PHP und seine oftmals etwas unbedarften Anwender sind da etwas problematisch.
Alternativ kannst du auch einfach das Skript selbst im Browser aufrufen. Eigentlich müsste er es dann in der ein oder anderen Form als XML-Daten ausgeben bzw. darauf hinweisen. Das hängt aber vermutlich vom Browser ab, insofern empfehle ich dir dringend, lieber mit Firebug genau hinzugucken, als zu interpretieren, was der Browser sich vielleicht oder vielleicht auch nicht bei diesem oder jenem gedacht haben mag.