我将使用Hpricot来处理 XML 文件。我想随机显示文件中的一些引号,然后我想跟踪每个引号的显示频率。我是否可以使用 Hpricot 更新 XML 文件中的单个项目(或者是否有其他解决方案可以为我做到这一点?)或者我应该在每次显示项目时重写整个 XML 文件?
问问题
329 次
2 回答
1
我曾经使用 nokogiri 而不是 hpricot(它明显更快)。
我做了这样的事情:
#!/usr/bin/env ruby
require 'rubygems'
require 'nokogiri'
FNAME = "/home/kirill/books.xml"
doc = Nokogiri::XML(open(FNAME))
doc.search('title').each {|node|
node.content=node.content.reverse
}
File.new(FNAME,'w').write doc unless doc.validate
你有这么大的文件,这会变慢吗?
还是你想要一些我不明白的东西?
于 2009-12-08T08:07:32.387 回答
-2
我看到了几个解决方案:
- 解析文件一次并将其存储在数据库中,并使用附加属性
viewed
来跟踪。 - 如果 DB 不可用,则解析一次并保留 Yaml。更容易解析、读取和回写。每次都会为您节省宝贵的执行时间。
如果您不断更新文件或将文件与远程服务器同步,那么将信息存储在数据库中是您的最佳选择。
于 2009-12-08T08:16:40.183 回答