Extracting Data While Parsing a Document
event_xml = %{
<events>
<clean system="dev" start="01:35" end="01:55" area="build" error="1" />
<backup system="test" start="02:00" end="02:47" size="327450" error="0" />
</events>}
require 'rexml/document'
require 'rexml/streamlistener'
class ErrorListener
include REXML::StreamListener
def tag_start(name, attrs)
if attrs["error"] != nil and attrs["error"] != "0"
puts %{Event "#{name}" failed for system "#{attrs["system"]}" } +
%{with code #{attrs["error"]}}
end
end
end
REXML::Document.parse_stream(event_xml, ErrorListener.new)
Related examples in the same category