2012-02-04 46 views
1

我從外部提供程序檢索XML,對於調試,我通常從瀏覽器中查看它。不幸的是,只有Internet Explorer能夠將數據呈現爲XML。所有其他瀏覽器,如Chrome,Safari,Firefox都會因爲某些原因將其呈現爲純文本格式。XML以純文本形式顯示

有人可以解釋爲什麼會出現這種情況嗎?

謝謝。

+0

您是否指MSIE應用樣式表並使節點可展開/可摺疊的事實?這正是MSIE的方式,而不是其他瀏覽器的工作方式。 XML通常被機器消費,而不是人類,所以試圖添加樣式和行爲會干擾與最有可能的xml用戶(即其他程序和應用程序)的通信 – MatthewMartin 2012-11-29 16:30:54

回答

2

嘗試(如果你能):

  • 力返回頁面的MIME類型,以text/xml
  • 控制XML的聲明,以檢查其正確
  • 控制DOCTYPE聲明,如果是正確

您會在這裏粘貼您的代碼/返回的XML以顯示出錯的地方!

以後添加

逸岸如果XML格式不正確formacted(例如:沒有孤單屬性的一些要素價值的一個很好的逃生)瀏覽器顯示全部爲純文本。嘗試驗證文本使用W3C XML Validator

然後正如我所說的,在第一點,請求中返回的mimetype可能是錯誤的:我有一個例子,你可以在頭中找到有時(錯誤的例子):

POST /path/to/the/service/ HTTP/1.1 
Host: www.example.com 
Content-Type: text/plain; charset=utf-8 
Content-Length: length 

<?xml version="1.0" encoding="utf-8"?> 
.... 

如果你看一下Content-Type你會看到Content-Type: text/plain; charset=utf-8,將是Content-Type: text/xml; charset=utf-8但要解決這個問題的唯一辦法就是修改Web服務的源代碼,響應與XML文件。 要驗證您是否可以(例如使用Chrome按<F12>)選擇網絡並重新加載頁面(指向您要查看的資源)並查看Type的列。

+0

你能告訴我我可以如何強制mimetype嗎? 當我在IE中解析時,它以'<?xml version =「1.0」encoding =「ISO-8859-1」?>開頭,所以我認爲這不是問題。 Theres沒有太多我可以粘貼在這裏,因爲輸出在其他瀏覽器只是純文本。 – JavaCake 2012-02-04 20:11:29

+0

如果你有權訪問服務器端,你可以在語言文檔中搜索如何強制執行它(例如,在php的開頭添加'header(「content-type:text/xml」);')。相反,在Firefox上有這個插件 - > [鏈接](https://addons.mozilla.org/en-US/firefox/addon/force-content-type/)。 – zambotn 2012-02-05 00:38:52

+0

不幸的是我沒有這樣的訪問權限,但我已經通過Java和C#訪問了2年的XML系統,所以我假設他們正在根據「書」做所有事情。解析時瀏覽器肯定有問題。 – JavaCake 2012-02-05 08:14:56

相關問題