Ich analysierte eine 40 GB-Datei mit Nokogiri::XML::Reader
.
Struktur meiner XML-Datei:
<?xml version="1.0" encoding="utf-8"?>
<posts>
<row Id="4">
<row Id="5">
</posts>
Code:
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
Ich denke, die Antwort hängt davon ab, wie Sie die Daten zu verwenden. In meinem Fall musste ich einfach die Post-Knoten streamen.
https://github.com/ohler55/ox – coreyward
Haben Sie diesen Post gesehen? http://stackoverflow.com/questions/6675128/how-doi-i-use-nokogirixmlreader-to-parse-large-xml-files Normalerweise verwende ich Nokogiri und streame das XML. – kcdragon