【问题标题】:XML shows up as plain textXML 显示为纯文本
【发布时间】:2012-02-04 19:43:40
【问题描述】:

我从外部提供程序检索 XML,为了调试,我通常从浏览器查看它。不幸的是,只有 Internet Explorer 能够将数据呈现为 XML。由于某种原因,所有其他浏览器,如 Chrome、Safari、Firefox 都将其呈现为纯文本。

谁能解释为什么会这样?

谢谢。

【问题讨论】:

  • 您指的是 MSIE 应用样式表并使节点可展开/可折叠的事实吗?这只是 MSIE 的运行方式,而不是其他浏览器的工作方式。 XML 通常由机器而非人类使用,因此尝试添加样式和行为会干扰与最有可能使用 xml 的用户(即其他程序和应用程序)的通信

标签: internet-explorer firefox google-chrome safari


【解决方案1】:

尝试(如果可以的话):

  • 强制返回页面的mimetype为text/xml
  • 控制 xml 的声明以检查其是否正确
  • 控制 DOCTYPE 声明是否正确

您可以在此处粘贴您的代码/返回的 XML 以显示问题所在!

稍后添加

事实上,如果 XML 格式不正确(例如:某些元素上的属性值没有很好的转义),浏览器将全部显示为纯文本。尝试使用 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,但解决此问题的唯一方法是修改响应xml 文件的Web 服务的源代码。 要验证您是否可以,例如使用 Chrome 按&lt;F12&gt;,选择网络并重新加载页面(指向您要查看的资源)并查看类型列。

【讨论】:

  • 你能告诉我如何强制 mimetype 吗?当我在 IE 中解析时,它以&lt;?xml version="1.0" encoding="ISO-8859-1" ?&gt; 开头,所以我认为这不是问题。我可以在这里粘贴的内容不多,因为在其他浏览器中输出只是纯文本。
  • 如果您可以访问服务器端,您可以在语言文档中搜索如何强制它(例如在 php 中添加 header ("content-type: text/xml"); 在开头)。而在 Firefox 上有这个插件 -> link.
  • 不幸的是我没有这样的访问权限,但我已经通过 Java 和 C# 以 XML 形式访问系统已有 2 年了,所以我认为他们正在按照“书”做所有事情。解析的时候浏览器肯定有问题。
  • 好的,不可能有人在网络服务上更改某些内容(用于升级/错误更正或其他内容)?你试过我链接的firefox插件吗?我将编辑我的回复并添加一些关于我认为会发生什么的解释。
  • 新发现。源代码显示为 XML,但内容视图是纯文本。我怎样才能让它在我的视图中显示实际的 XML (@Firefox)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-18
  • 2012-01-31
  • 2013-05-19
  • 2013-01-25
  • 2015-07-06
  • 2021-09-28
  • 2021-05-20
相关资源
最近更新 更多