我正在用 Ruby 和 Nokogiri 解析一个 XML 文件,但是我在执行时间方面遇到了一些问题。4000 行需要一分钟 - 这太多了。我试图找到一些代码优化的想法。
这是代码示例:
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 中没有固定的位置,可以在任何级别。另外,我正在以某种方式解析其他三个标签。
有人对我如何改进有任何想法吗?