使用Javascript从RSS Atom提要中提取数据

时间:2013-07-18 19:11:29

标签: javascript html xml rss atom-feed

我编写了一个网页,该网页从RSS接收XML文件并通过某些标记对其进行解析。我已经在我计划使用的数据的本地副本上测试了它,它工作正常。问题是,我无法弄清楚如何在不同的网页上调用RSS文件并解析其数据。

以下是我设置解析器的代码:

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", ".../NewsFeed.aspx?output=Atom", false);

这是我检查RSS页面时获得的xml文件的标题:

<?xml version="1.0" encoding="UTF-8" ?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom">
<title type="text"> News</title>
<subtitle type="text">A syndication of the most recently published news.</subtitle>

<id>uuid:64d61c8e-c5d7-4529-b5a3-2dcd4097238b;id=50</id>

<rights type="text">© 2013 <owner goes here>. All Rights Reserved.</rights>

<updated>2013-07-09T13:34:27Z</updated>

<link rel="alternate" href=".../Default.aspx" />
<link rel="self" href=".../NewsFeed.aspx" />

我编辑了用于发布目的的链接。我尝试使用RSS文档中列出的两个链接以及open xml方法中的外部源的URL,但我没有运气。

 xmlhttp.open("GET", "link goes here", false);

有谁知道我会如何阅读RSS提要?另外,Feed是以Atom格式返回的标准RSS feed(2.0)。

1 个答案:

答案 0 :(得分:0)

要检查初学者的两件事:

1)您的NewsFeed.aspx需要在与调用它的页面完全相同的协议,子域,域和端口上托管。否则,浏览器安全性会启动并阻止您使用XHR。如果您正在尝试阅读第三方RSS源,则可能需要使用代理。

2)响应的内容类型标题需要是text / xml。有办法解决这个问题,但如果内容类型准确,那就更好了。