XMLファイルをRubyとNokogiriでパースしているのですが、実行時間に問題があります。4000 行で 1 分かかります。長すぎます。コードを最適化するためのアイデアを見つけようとしています。
これはコードの例です:
input = Nokogiri::XML(File.open(file_name))
input.xpath('//Transition').each do |transition_record|
from = transition_record.xpath('@From')
to = transition_record.xpath('@To')
name = transition_record.xpath('@Name')
Transition.create do |transition|
transition.from_id = from.to_s
transition.to_id = to.to_s
transition.name = name.to_s
if transition_record.at_xpath('Condition').at_xpath('@Type')
transition.condition = transition_record.at_xpath('Condition').at_xpath('@Type').to_s
end
end
end
Transition
XML 内の固定された場所ではなく、任意のレベルにある可能性があります。また、何らかの方法で他の 3 つのタグを解析しています。
どうすれば改善できるか、誰にもアイデアはありますか?