# 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