0

我将使用Hpricot来处理 XML 文件。我想随机显示文件中的一些引号,然后我想跟踪每个引号的显示频率。我是否可以使用 Hpricot 更新 XML 文件中的单个项目(或者是否有其他解决方案可以为我做到这一点?)或者我应该在每次显示项目时重写整个 XML 文件?

4

2 回答 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

我看到了几个解决方案:

  1. 解析文件一次并将其存储在数据库中,并使用附加属性viewed来跟踪。
  2. 如果 DB 不可用,则解析一次并保留 Yaml。更容易解析、读取和回写。每次都会为您节省宝贵的执行时间。

如果您不断更新文件或将文件与远程服务器同步,那么将信息存储在数据库中是您的最佳选择。

于 2009-12-08T08:16:40.183 回答