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



我写了一个网页,它从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文档中列出的链接以及openxml方法中外部提要的URL,但没有成功。

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

有人知道我会如何阅读RSS提要吗?附带说明一下,提要是以Atom格式返回的标准RSS提要(2.0)。

有两件事需要检查启动器:

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

2) 响应的内容类型标头必须是text/xml。有一些方法可以绕过这一点,但最好是内容类型准确。

最新更新