【问题标题】:How do I determine if an RSS feed is XML or JSON?如何确定 RSS 提要是 XML 还是 JSON?
【发布时间】:2010-06-03 01:52:36
【问题描述】:

有没有办法判断提要是 XML、JSON 还是两者兼有?

【问题讨论】:

  • 请注意:一个提要不能同时是有效的 XML 和有效的 JSON。它需要自定义阅读器从单个文档中提取每种格式的信息,如果需要自定义阅读逻辑,则它对相关格式无效。

标签: xml json rss


【解决方案1】:

最好和可靠的方法是简单地通过 XML 和 JSON 解析器运行它,然后查看哪个可以正常工作而不会产生语法错误。例如,在 PHP 中,尝试 json_encode($feed_string)$xml = new SimpleXMLElement($feed_string);

或者,你可以做一些简单的字符串检查。所有格式正确的 XML 文档都以 <?xml 开头,而 JSON 通常以 { 开头,因为提要数据是一个 Javascript 对象。

Google 提供的两种 Feed 格式的示例可能会有所帮助:

http://code.google.com/apis/gdata/docs/json.html

【讨论】:

  • 虽然包含它是个好主意,但不能保证 XML 声明出现在格式良好的 XML 文件中。请参阅 w3.org/TR/REC-xml/#sec-prolog-dtd 并注意 XML 声明应该而不是必须。
  • 另外,正确的 JSON 可以以数组 [ ... ] 以及对象 { ... } 开头
【解决方案2】:

我不太清楚你所说的“feed”是什么意思,但如果文件的 mime 类型设置为application/json,那么它就是 JSON。 XML 有两种标准的 mime 类型(application/xmltext/xml)。

如果您无权访问 mime 类型(或者它们不明确),您可以在正确的 xml 文件的开头检查 <?xml。如果它不存在,那么您可能会很好地猜测它是 XML 如果它仅以 < 开头,而 JSON 如果它以 { 开头。但不能保证它们会正确形成。

【讨论】:

  • 抱歉,rodeocown 但我忘了在正文中添加 RSS 提要。我的印象是 XML 和 JSON 是交付 RSS 的两个主要标准
  • 不用担心。 RSS 根据定义是 XML。请参阅 stackoverflow.com/questions/246577/can-i-serve-rss-in-json 了解其他使用 JSON 创建类似 RSS 提要的人。
猜你喜欢
  • 1970-01-01
  • 2011-01-27
  • 2012-08-07
  • 2014-05-20
  • 2010-09-25
  • 2011-09-01
  • 1970-01-01
  • 2017-05-24
相关资源
最近更新 更多