Hpricotを使用して XML ファイルを処理します。ファイルからいくつかの引用をランダムに表示し、各引用が表示された頻度を追跡したいと考えています。Hpricot を使用して XML ファイル内の 1 つのアイテムを更新することは可能ですか (または、これを行うことができる他のソリューションはありますか?)、またはアイテムが表示されるたびに XML ファイル全体を書き換える必要がありますか?
2 に答える
1
以前は hpricot の代わりに nokogiri を使用していました (かなり高速です)。
私はこのようなことをしました:
#!/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
いくつかの解決策があります。
- ファイルを一度解析してDBに保存し、追加の属性を使用
viewed
して追跡します。 - DB が利用できない場合は、一度解析して Yaml を保持します。解析、読み取り、書き戻しがより簡単になります。毎回貴重な実行時間を節約します。
ファイルを更新し続けるか、ファイルをリモート サーバーと同期し続ける場合は、DB に情報を保存するのが最善の策です。
于 2009-12-08T08:16:40.183 に答える