2014-10-05 66 views
1

我想恢復JS中的RSS源。在沒有tierce服務的JS中解析RSS(vanilla JS或Angular)

我在網上查找了一整天,發現幾乎每個人都使用Google Feed API,Yahoo API或用於計算和Jsonification的nodejs/php頁面。而且我不想依賴Google Feed API等服務。

我的目標是獲取一個RSS提要,然後創建一個數組,其中每個物品上的feed將是一個對象,完整的javascript。

我使用的是Angular JS,所以如果幫助可以使用這個lib的好處,它會很好,但如果需要的話我不會關閉任何vanilla-JS代碼。

對於那些可能想問爲什麼:這是爲了Firefox OS的應用程序,這就是爲什麼我不能有任何php/nodejs。所有都必須在JS中製作。

感謝, 湯姆

回答

0

感謝那些花時間回答我的人:) 沒有任何服務器計算,它似乎不是真的可能。

我必須承認,我很幸運,因爲我想調用該服務剛剛realesed一個新的API,讓快樂的結局對我來說:)

感謝每一個身體!

0

是什麼力量讓直接XML結構的獲取問題?

我認爲使用systemXHR權限常規AJAX請求應該適合你。

然後你就可以從xml中獲得你需要的apy可能的方式。

0

所以我最好的猜測將只使用正常DOM parser,然後查詢文檔:

var parser = new DOMParser(); 
var xmlDoc = parser.parseFromString(txt, "text/xml"); 

我想現在你也可以使用的東西像querySelectorAll超過文檔,類似於普通的DOM快速迭代。例如。像這樣的工作:

[].forEach.call(xmlDoc.querySelectorAll('item'), function(item) { 
    console.log(item.querySelector('title').textContent); 
}); 
0

簡短的回答是,你不能獲取並解析客戶端上的XML提要沒有使用,因爲瀏覽器的同源政策的第三方服務。

從那裏,有2個選項:

  • 提取並在服務器端解析器。您必須自己完成所有煩瑣的工作,但是您可以輕鬆地從瀏覽器加載數據,因爲它將位於同一個域中,因此「同源策略」不適用於您的隱私
  • 妥協要求不使用第三方,並使用將XML提要轉換爲JSON來規避SOP的提議。

在這兩種情況下,我建議你檢查Superfeedr(這是我創造的!),我相信可以幫助很多......我們也有一個Angular module for feeds