0

Hpricotを使用して XML ファイルを処理します。ファイルからいくつかの引用をランダムに表示し、各引用が表示された頻度を追跡したいと考えています。Hpricot を使用して XML ファイル内の 1 つのアイテムを更新することは可能ですか (または、これを行うことができる他のソリューションはありますか?)、またはアイテムが表示されるたびに XML ファイル全体を書き換える必要がありますか?

4

2 に答える 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

いくつかの解決策があります。

  1. ファイルを一度解析してDBに保存し、追加の属性を使用viewedして追跡します。
  2. DB が利用できない場合は、一度解析して Yaml を保持します。解析、読み取り、書き戻しがより簡単になります。毎回貴重な実行時間を節約します。

ファイルを更新し続けるか、ファイルをリモート サーバーと同期し続ける場合は、DB に情報を保存するのが最善の策です。

于 2009-12-08T08:16:40.183 に答える