Extracting Data While Parsing a Document : rexml « XML « Ruby






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

1.REXML is already part of Ruby, you get it free of charge.
2.A basic demonstration of parsing an XML file looking for certain elements:
3.Use rexml to read xml file
4.Checking XML Well-Formedness
5.Get the first element under root
6.Output xml with REXML
7.get a Node from xml document
8.Extracting Data From a Document's Tree Structure
9.Entity Substituter
10.Assign new value to node
11.Creating and Modifying XML Documents
12.Add new element
13.Compressing Whitespace in an XML Document
14.Compress whitespace only in anchor
15.Leave whitespace for anchor
16.Compress new line character
17.require 'rexml/document'