2014-04-14 35 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