gpt4 book ai didi

ruby - Hpricot XML 文本搜索

转载 作者:太空宇宙 更新时间:2023-11-03 17:40:42 25 4
gpt4 key购买 nike

Hpricot + Ruby XML 解析和逻辑选择。

目标:找到作者 Bob 写的所有标题。

我的 XML 文件:

<rss>
<channel>
<item>
<title>Book1</title>
<pubDate>march 1 2010</pubDate>
<author>Bob</author>
</item>

<item>
<title>book2</title>
<pubDate>october 4 2009</pubDate>
<author>Bill</author>
</item>

<item>
<title>book3</title>
<pubDate>June 5 2010</pubDate>
<author>Steve</author>
</item>
</channel>
</rss>

#my Hpricot, running this code returns no output, however the search pattern works on its own.
(doc % :rss % :channel / :item).each do |item|

a=item.search("author[text()*='Bob']")

#puts "FOUND" if a.include?"Bob"
puts item.at("title") if a.include?"Bob"

end

最佳答案

如果您没有设置 Hpricot,这里是 Nokogiri 中使用 XPath 执行此操作的一种方法:

require 'nokogiri'
doc = Nokogiri::XML( my_rss_string )
bobs_titles = doc.xpath("//title[parent::item/author[text()='Bob']]")
p bobs_titles.map{ |node| node.text }
#=> ["Book1"]

编辑:@theTinMan 的 XPath 也运行良好,可读性更强,而且可能更快:

bobs_titles = doc.xpath("//author[text()='Bob']/../title")

关于ruby - Hpricot XML 文本搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4974304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com