XML以纯文本形式显示

问题描述:

我从外部提供程序检索XML,对于调试,我通常从浏览器中查看它。不幸的是,只有Internet Explorer能够将数据呈现为XML。所有其他浏览器,如Chrome,Safari,Firefox都会因为某些原因将其呈现为纯文本格式。XML以纯文本形式显示

有人可以解释为什么会出现这种情况吗?

谢谢。

+0

您是否指MSIE应用样式表并使节点可展开/可折叠的事实?这正是MSIE的方式,而不是其他浏览器的工作方式。 XML通常被机器消费,而不是人类,所以试图添加样式和行为会干扰与最有可能的xml用户(即其他程序和应用程序)的通信 – MatthewMartin 2012-11-29 16:30:54

尝试(如果你能):

  • 力返回页面的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中解析时,它以'开头,所以我认为这不是问题。 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