2012-05-08 61 views
0

我將大約200個產品訂閱源加載到非常耗時的網站中。尋找新的方法來做到這一點(Nokogiri以外)我正在看Feedzirra。目前我正在使用Feedzirra 0.3.1。安裝沒有任何問題。使用feedzirra解析XML產品訂閱

我想解析以下XML產品飼料(和許多其他人):

feed = "http://adtraction.com/productfeed.htm?type=feed&format=XML&encoding=UTF8&epi=0&zip=0&cdelim=tab&tdelim=singlequote&sd=0&apid=52561763&asid=257117013" 

feed_obj = Feedzirra::Feed.fetch_and_parse(feed) 

但是當我做我只能得到一個零響應。它似乎至少它是在提取Feed,因爲它在響應之前需要幾秒鐘。

我的問題:

  1. 是否有可能使用Feedzirra這個?或者,Feedzirra只能用於RSS提要?
  2. 我可以期待使用Feedzirra更快地閱讀和解析它們,還是這是一個死衚衕?
  3. 您是否得到相同的答覆和/或您能否看到問題所在?

編輯:更改了代碼,這實際上不是我在應用程序中使用的代碼。

+0

使用做什麼? – klaffenboeck

+0

對不起,這是一段以代碼結束的「只是文本」... – Christoffer

回答

0

經過仔細觀察,似乎Feedzirra僅適用於博客提要,並不適用於我的問題。我將不得不尋找其他選擇。

1

看起來Feedzirra使用sax-machine進行基於Nokogiri的xml解析,所以它不太可能使用它來獲得那麼多的性能增益,而不是純粹的nokogiri方法。它可能會有幫助的是與主機合作。你可以相當容易地檢查標題,而不是一遍又一遍拉動文件,如果沒有改變它

最有可能你得到空響應,因爲它超時。

+0

好的,很酷。我會研究這一點。某些產品文件是32 Mb。下載通常不是最需要花費的時間,它更多是下載後的實際更新。可能很高興知道我是否應該使用Feedzirra,但在我完全離開它之前需要一些關於我的問題的更多信息。 – Christoffer

1

有幾個缺點在你的代碼片段:

  1. 1不是在Ruby中的變量,它是一個Fixnum,沒有值可以被分配給它
  2. 你必須把周圍的括號url以將其轉換爲字符串並將其分配給變量。
  3. 除非你定義它,我敢肯定,using是不是在Ruby指令

更改您的代碼是這樣的,它應該最有可能的工作:

first = "http://adtraction.com/productfeed.htm?type=feed&format=XML&encoding=UTF8&epi=0&zip=0&cdelim=tab&tdelim=singlequote&sd=0&apid=52561763&asid=257117013" 
feed = Feedzirra::Feed.fetch_and_parse(first) 

feed應該再成爲某種Feedzirra對象,你可以繼續工作。

+0

對不起,把代碼放在那裏時我有點sl I,我意識到我最初編寫的文本並不能很好地描述問題。我將編輯問題....謝謝。 – Christoffer