2017-03-19 99 views
-2

我最近學會了如何使用nokogiri和以下代碼將XML源導入到rails中。Rails Nokogiri從url獲得xml

我可以選擇直接從URL訪問它,而不是從URL下載我的訂閱源。

讓我們假設URL是`www.feedurl.com」

我將如何更新下面的代碼從該網址得到它:

class Product < ApplicationRecord 
    def self.xml_parser 
     doc = Nokogiri::XML(open("#{Rails.root}/datafeed.xml")) 
     frothieproducts = doc.xpath('//FeedItems/FeedItem') 
     frothieproducts.map do |feeditem| 
      product = Product.new 
      product.product_name = feeditem.xpath('Name').text 
      product.product_description = feeditem.xpath('Description').text 
      product.product_link = feeditem.xpath('Url').text 
      product.save! 
     end 
    end 
end 
+0

請閱讀「[mcve]」。你的問題不完整。我們需要可運行的代碼並演示問題。添加將問題複製到問題所需的最小HTML。 –

回答

1

如果您要訪問從XML數據www.feedurl.com你可以改變這一行:

doc = Nokogiri::XML(open("#{Rails.root}/datafeed.xml")) 

doc = Nokogiri::XML(open("http://www.feedurl.com")) 
+0

更好的問題是,如果Rails代碼生成XML,爲什麼Nokogiri被用來更改呈現的XML?在源代碼中更改上游XML。 –