我需要解析非常大的XML文件(接近50GB),我怎么能用Ruby做到这一点?我不可能把它拆分成块,我已经尝试过了。
答案 0 :(得分:2)
我使用Nokogiri::XML::Reader
解析了一个40GB的文件。
我的XML文件的结构:
<?xml version="1.0" encoding="utf-8"?>
<posts>
<row Id="4">
<row Id="5">
</posts>
代码:
require 'nokogiri'
fname = "Posts.xml"
xml = Nokogiri::XML::Reader(File.open(fname))
xml.each do |posts|
posts.each do |post|
next if post.node_type == 14 # TYPE_SIGNIFICANT_WHITESPACE
# do something with post
end
end
我认为答案取决于您计划如何使用数据。就我而言,我只需要流式传输节点。