2014-04-14 67 views
0

我想用Nokogiri和XPath編輯Ruby中每個RSS源的節點。使用Nokogiri和XPath編輯RSS提要?

我能得到這個節點的值,但我不能編輯:

doc = Nokogiri::XML(open("http://www.pcinpact.com/rss/news.xml")) 

doc.xpath('//item').each do |i| 
    pp i.xpath('title').first.text 
end 

我得到了各item節點title節點的值。 我想編輯「內容」,但我找不到xpath。 很顯然,我想通過修改來獲取我的原始XML。

有什麼想法?

+2

當你問一個問題時,我們期望輸入數據的一個最簡單的例子,以及你想要的輸出樣本。您正在詢問潛在的回答者來運行代碼,並提取數據並將其最小化以幫助您。相反,您需要幫助我們來幫助您,並在前面做到這一點。您的代碼中的哪個位置嘗試更改節點?我們需要看你的嘗試。 –

+0

請注意,XPath是* query *語言。它不允許您編輯文檔。它只是讓你從它檢索的東西。 –

+0

輸入數據太大而無法在此處顯示。 我試圖用.methods顯示xpath的方法,但我沒有發現任何有趣的東西。 我在Nokogiri網站上看過,但是我沒有發現任何與xpath。 – iMeee

回答

0

要設置內容,請使用content=方法。

doc = Nokogiri::XML(open("http://www.pcinpact.com/rss/news.xml")) 

doc.xpath('//item').each do |i| 
    pp i.xpath('title').first.content = "My new title" 
end 

更多關於如何操縱引入nokogiri文檔,檢查出「Modifying an HTML/XML Document」。

+1

我已經認爲我已經嘗試過,但它的工作方式我想!謝謝! 我通過使用at_xpath解決了我的問題,但它不是很好。 – iMeee