@@ -68,40 +68,40 @@ - (void)parser: (OFXMLParser*)parser didStartElement: (OFString*)name withPrefix: (OFString*)prefix namespace: (OFString*)ns - attributes: (OFArray*)attrs + attributes: (OFArray*)attributes { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; - OFXMLElement *elem; - OFXMLAttribute **attrs_c; - size_t i, attrs_cnt; - IMP add_attr; - - elem = [OFXMLElement elementWithName: name - namespace: ns]; - - attrs_c = [attrs cArray]; - attrs_cnt = [attrs count]; - add_attr = [elem methodForSelector: @selector(addAttribute:)]; - - for (i = 0; i < attrs_cnt; i++) { - if ([attrs_c[i] namespace] == nil && - [[attrs_c[i] name] isEqual: @"xmlns"]) + OFXMLElement *element; + OFXMLAttribute **cArray; + size_t i, count; + IMP addAttribute; + + element = [OFXMLElement elementWithName: name + namespace: ns]; + + cArray = [attributes cArray]; + count = [attributes count]; + addAttribute = [element methodForSelector: @selector(addAttribute:)]; + + for (i = 0; i < count; i++) { + if ([cArray[i] namespace] == nil && + [[cArray[i] name] isEqual: @"xmlns"]) continue; - if ([[attrs_c[i] namespace] + if ([[cArray[i] namespace] isEqual: @"http://www.w3.org/2000/xmlns/"]) - [elem setPrefix: [attrs_c[i] name] - forNamespace: [attrs_c[i] stringValue]]; + [element setPrefix: [cArray[i] name] + forNamespace: [cArray[i] stringValue]]; - add_attr(elem, @selector(addAttribute:), attrs_c[i]); + addAttribute(element, @selector(addAttribute:), cArray[i]); } - [[stack lastObject] addChild: elem]; - [stack addObject: elem]; + [[stack lastObject] addChild: element]; + [stack addObject: element]; [pool release]; } - (void)parser: (OFXMLParser*)parser @@ -123,50 +123,51 @@ [stack removeNObjects: 1]; } - (void)parser: (OFXMLParser*)parser - foundCharacters: (OFString*)str + foundCharacters: (OFString*)characters { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; - OFXMLElement *elem = [OFXMLElement elementWithCharacters: str]; + OFXMLElement *element = + [OFXMLElement elementWithCharacters: characters]; if ([stack count] == 0) [delegate elementBuilder: self - didBuildElement: elem]; + didBuildElement: element]; else - [[stack lastObject] addChild: elem]; + [[stack lastObject] addChild: element]; [pool release]; } - (void)parser: (OFXMLParser*)parser - foundCDATA: (OFString*)cdata + foundCDATA: (OFString*)CDATA { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; - OFXMLElement *elem = [OFXMLElement elementWithCDATA: cdata]; + OFXMLElement *element = [OFXMLElement elementWithCDATA: CDATA]; if ([stack count] == 0) [delegate elementBuilder: self - didBuildElement: elem]; + didBuildElement: element]; else - [[stack lastObject] addChild: elem]; + [[stack lastObject] addChild: element]; [pool release]; } - (void)parser: (OFXMLParser*)parser foundComment: (OFString*)comment { OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init]; - OFXMLElement *elem = [OFXMLElement elementWithComment: comment]; + OFXMLElement *element = [OFXMLElement elementWithComment: comment]; if ([stack count] == 0) [delegate elementBuilder: self - didBuildElement: elem]; + didBuildElement: element]; else - [[stack lastObject] addChild: elem]; + [[stack lastObject] addChild: element]; [pool release]; } @end