# File lib/jabber4r/protocol.rb, line 1242
1242:         def  parseparse
1243:           @started = false
1244:   
1245:           parser = XMLParser.new("UTF-8")
1246:           def parser.unknownEncoding(e)
1247:             raise "Unknown encoding #{e.to_s}"
1248:           end
1249:           def parser.default
1250:           end
1251:           
1252:           begin
1253:             parser.parse(@stream) do |type, name, data|
1254:               begin
1255:               case type
1256:                 when XMLParser::START_ELEM
1257:                   case name
1258:                     when "stream:stream"
1259:                       openstream = ParsedXMLElement.new(name)
1260:                       data.each {|key, value| openstream.add_attribute(key, value)}
1261:                       @listener.receive(openstream)
1262:                       @started = true
1263:                     else 
1264:                       if @current.nil?
1265:                         @current = ParsedXMLElement.new(name.clone)
1266:                       else
1267:                         @current = @current.add_child(name.clone)
1268:                       end
1269:                       data.each {|key, value| @current.add_attribute(key.clone, value.clone)}
1270:                   end
1271:                 when XMLParser::CDATA
1272:                   @current.append_data(data.clone) if @current
1273:                 when XMLParser::END_ELEM
1274:                   case name
1275:                     when "stream:stream"
1276:                       @started = false
1277:                     else
1278:                       @listener.receive(@current) unless @current.element_parent
1279:                       @current = @current.element_parent
1280:                   end
1281:               end
1282:               rescue
1283:                 puts  "Error #{$!}"
1284:               end
1285:             end
1286:           rescue XMLParserError
1287:             line = parser.line
1288:             print "XML Parsing error(#{line}): #{$!}\n"
1289:           end
1290:         end