2013-07-18 48 views
0

我寫了一個網頁,它從RSS接收XML文件並通過某些標記解析它。我已經在我計劃使用的數據的本地副本上進行了測試,並且工作正常。問題在於我無法弄清楚如何在不同的網頁上調用RSS文件並解析其數據。使用Javascript從RSS提取數據Atom提要

這裏是我的設置解析器代碼:

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); 

下面是XML文件的頭,我得到當我檢查RSS頁面:

<?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提要(2.0)。

+0

YQL或雅虎管道 – dandavis

+0

我不太清楚你的意思。我不是很熟悉HTML/JS和XML – user2517628

+0

的互動,當有人給我一個我沒有聽說過的建議時,我做的第一件事就是谷歌它... – dandavis

回答

0

兩件事情來檢查首發:

1)您NewsFeed.aspx需要在頁面調用它要在完全相同的協議,子域,域和端口主持。否則,瀏覽器安全性會啓動並阻止您使用XHR。如果您正嘗試閱讀第三方RSS源,則可能需要使用代理。

2)響應的內容類型標題需要爲text/xml。有辦法可以解決這個問題,但如果內容類型是準確的,則會更好。

+0

爲了迴應你的第一點,這可能是爲什麼它不起作用。我正在沙箱服務器上開發,RSS正在運行。 至於第二,我不能控制XML/RSS是如何格式化的,所以我必須在其約束下工作 – user2517628

+0

聽起來你需要一個代理服務器,我必須自己做同樣的事情。關於內容類型,請注意它是一個響應標題,而不是XML格式的一部分。響應標頭由服務器設置,所以如果您發現點不正確,您必須與服務器管理員進行交談。 – murdock

+0

你也可以使用Superfeedr的API和支持JSONP的反饋:) –