Jedes Mal, wenn ich eine XML-Datei öffne, erhalte ich nur eine leere Seite anstelle eines Tag-Baums. Die Datei selbst ist korrekt und wird in Ordnung geladen. Ich kann sie über View Source oder im Firebug anzeigen. Ich habe versucht, alle meine Addons auszuschalten und Firefox im abgesicherten Modus auszuführen, aber das Problem wurde nicht gelöst.
Ich vermute, dass ich meine Konfiguration irgendwie durcheinander gebracht habe und Firefox versucht nun, XML-Dateien als HTML-Dateien zu rendern. Ich habe versucht zu googeln, aber ohne Erfolg. Hilfe bitte?
UPD: Beispieldatei: http://lj.lain.ru/3/1273657698603.sample.xml Außerdem ist mir aufgefallen, dass alle Browser auf dem Computer jetzt gleich funktionieren, daher ändere ich die Frage entsprechend
Antworten:
Wenn die XML-Datei fehlerhaft ist, weiß der Browser nicht, was er damit machen soll, und zeigt meiner Erfahrung nach nichts an.
Wenn es sich bei der XML-Datei
valid
um eine Datei handelt, geben die meisten Browser (IE8, Chrome und Firefox) eine Meldung wie ausThis XML file does not appear to have any style information associated with it. The document tree is shown below.
und wechseln in einen speziellen Modus zum Anzeigen von XML-Dateien mit Funktionen wie dem Reduzieren von Codeblöcken.Schauen Sie hier: XML Validator
quelle
Ich habe gerade ein ähnliches Problem erhalten und gelöst: In meiner ASP.NET MVC-Anwendung habe ich einen Controller, der unformatiertes XML zurückgibt, das ich im Webbrowser als DOM-Baum sehen möchte.
Chrome macht es gut, aber IE 11 zeigt einfach eine leere Seite.
Das Problem scheint der HTTP-Header "Content-Type" zu sein: Wenn er keinen Zeichensatzwert enthält, zeigt der IE einfach eine leere Seite an (es sei denn, Sie haben einen Content-Disposition-Header. In diesem Fall bietet Ihnen der IE das Speichern des XML an). .
Die folgende HTTP-Antwort ist für Chrome in Ordnung, der IE zeigt jedoch eine leere Seite an:
Hinweis: Stellen Sie sicher, dass Sie die richtige Inhaltslänge angeben, obwohl ich nicht getestet habe, was passiert, wenn der Header für die Inhaltslänge fehlt oder einen falschen Wert hat. Außerdem habe ich die von IIS generierten X-Header aus diesem Ausdruck entfernt, aber es ist sicher, sie zu belassen.
Folgendes funktioniert jedoch sowohl unter IE als auch unter Chrome :
Der einzige Unterschied ist das Hinzufügen
; charset=utf-8
im Content-Type-Header.Für ASP.NET MVC-Entwickler bedeutet dies, dass Sie Folgendes nicht verwenden können, wenn Sie unformatiertes XML rendern und IE unterstützen möchten:
Stattdessen funktioniert Folgendes:
Mit freundlichen Grüßen.
quelle
Dies ist spezifisch für Firefox, aber ich denke, es ist einen Versuch wert:
Gehen Sie im Firefox-Menü zu Hilfe \ Informationen zur Fehlerbehebung und klicken Sie auf die Schaltfläche, um den enthaltenen Ordner Ihres Profils zu öffnen.
Sichern und löschen Sie die Datei mimeTypes.rdf, schließen Sie alle Instanzen von Firefox und öffnen Sie Firefox erneut.
Dadurch wird FF gezwungen, die Standardaktionen für die ihm bekannten MIME-Typen neu zu generieren. Dies kann das Problem beheben, wenn es durch etwas Seltsames verursacht wird, das FF tut.
quelle
Wenn Sie das XML von einem Server laden, müssen Sie den Header-Kontexttyp auf text / xml setzen.
In PHP müssen Sie dies beispielsweise vor Ihre Textausgabe stellen:
quelle
Hat die XML oben ein ähnliches Tag?
Dadurch wird der Browser so vorbereitet, dass er weiß, was zu tun ist.
quelle
Zusätzlich zu dem, was andere geschrieben haben, können einige / die meisten Webbrowser keine XML-Dateien rendern, die gemäß dem XML 1.1-Standard geschrieben wurden
Firefox zeigt eine Fehlermeldung an, die auf die Version
1.1
im XML-Prolog verweist .Der Internet Explorer zeigt nur eine leere Seite an.
Wenn Sie ein Softwareentwickler sind, beachten Sie, dass der Mangel an XML 1.1-Unterstützung nicht nur auf Webbrowser beschränkt ist. Es gibt auch einen Mangel an Unterstützung für XML 1.1 in vielen Programmiersprachen. (dh der Standard-DOM-Parser von Java 8 unterstützt XML 1.1 nicht). Sie können es insgesamt vorziehen, sich an XML Version 1.0 zu halten, wenn Sie die Wahl haben.
Sie können den Prolog natürlich auch einfach aus Ihrer XML-Datei entfernen. Das wird aber nicht immer funktionieren. (dh XML-Knoten können bestimmte Steuerzeichen enthalten, die in Version 1.0 verboten waren).
quelle