2010-05-21 47 views

回答

0

文件类型通常应该在带外确定。例如。如果您要从Web服务器获取文件,则要查看的地方应该是HTTP响应的Content-Type标头。如果您正在读取本地文件,文件系统将有一种确定文件类型的方法 - 在Windows上查看文件扩展名。

如果这些都不可用,您将不得不采取内容嗅探。这是从来没有完全可靠,RSS是特别烦,因为有它的多个不兼容的版本,而是最好的,你可以这样做很可能是:

  1. 尝试解析与XML解析器的内容。如果失败,则内容不是格式良好的XML,因此不能是RSS。

  2. 看看document.documentElement.namespaceURI。如果它是http://www.w3.org/1999/xhtml,那么你已经有了XHTML。如果它是http://www.w3.org/1999/02/22-rdf-syntax-ns#,那么你就有RSS(一种味道)。

  3. 如果document.documentElement.tagNamerss,那么您已经获得了RSS(略有不同的风味)。

如果文件不能被解析为XML,它可能是HTML(或者它的一些标签汤近似值)。可以想象,它也可能会被破坏RSS。在这种情况下,大多数Feed工具会拒绝它。如果您仍然需要检测这种情况,那么您会减少到在文件开头附近寻找字符串<html<rss<rdf:RSS。这将更加不可靠。

2

您可以随时自行分析以搜索xml标记(对于RSS)或html标记(对于HTML)。

+0

如果您指的是''声明,则不能保证RSS文件(或任何类型的XML文件)中会有一个声明。 – bobince 2010-05-21 14:35:57