# File lib/ruote/reader/xml.rb, line 68
    def self.read(s, opt=nil)

      parser = REXML::Parsers::SAX2Parser.new(s)

      root = nil
      current = nil

      # u, l, q, a <=> url, local, qname, attributes

      parser.listen(:start_element) do |u, l, q, a|
        current = Node.new(current, l.gsub(/-/, '_'), a)
        root ||= current
      end
      parser.listen(:end_element) do |u, l, q, a|
        current = current.parent
      end

      parser.listen(:characters) do |text|
        t = text.strip
        current.attributes[t] = nil if t.size > 0
      end

      parser.parse

      root.to_a
    end