【问题标题】:Edit RSS feed with Nokogiri and XPath?使用 Nokogiri 和 XPath 编辑 RSS 提要?
【发布时间】:2014-04-16 03:11:08
【问题描述】:

我想用 Nokogiri 和 XPath 在 Ruby 中编辑 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。

有什么想法吗?

【问题讨论】:

  • 当您提出问题时,我们期望输入数据的最小示例和您想要的输出示例。您要求潜在的回答者运行代码,提取数据并将其最小化以帮助您。相反,您需要帮助我们帮助您,并提前做好。在您的代码中您尝试更改节点的位置?我们需要看看你的尝试。
  • 请注意,XPath 是一种 查询 语言。它不允许您编辑文档。它只是让你从中检索东西。
  • 输入数据太大,不能放在这里。我试图用 .methods 展示 xpath 的方法,但我没有发现任何有趣的东西。我查看了 Nokogiri 网站,但我没有发现任何关于 xpath 的信息。
  • 我找到了 at_xpath 方法?您认为我可以用这种方法进行替换吗?
  • 可以总结输入数据以提供您正在使用的示例,或者您可以拼凑一些可以证明问题的东西。

标签: ruby xpath rss nokogiri


【解决方案1】:

要设置内容,请使用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”。

【讨论】:

  • 我已经以为我已经尝试过了,但它的工作方式正是我想要的!非常感谢!我通过使用 at_xpath 解决了我的问题,但它不是很好。
猜你喜欢
  • 1970-01-01
  • 2015-03-30
  • 2012-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-11
  • 1970-01-01
相关资源
最近更新 更多