def setup
@reader = WPM::XMLReader.new
@reader.extend(WPM::XMLAssistByXMLParser)
@reader.instance_eval{ @alist = Array.new }
def @reader.alist
@alist
end
def @reader.start_element(ns_uri, prefix, name, attr_map)
@alist.push([ :start_element, ns_uri, prefix, name, attr_map.to_a.sort ])
end
def @reader.end_element(ns_uri, prefix, name)
@alist.push([ :end_element, ns_uri, prefix, name ])
end
def @reader.processing_instruction(target, data)
@alist.push([ :pi, target, data ])
end
def @reader.character(data)
if (! @alist.empty? && @alist[-1][0] == :text) then
@alist[-1][1].concat(data)
else
@alist.push([ :text, data ])
end
end
def @reader.comment(data)
@alist.push([ :comment, data ])
end
end