diff --git a/ChangeLog b/ChangeLog index 73ccc125f..746e420aa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2014-04-03 00:55-EDT Gregory John Casamento + + * Source/GSXibParser.m: Add code to parse XML into a tree + so that it can be processed into instances. + 2013-04-02 Frank Le Grand * Source/NSToolbarItem.m: Fixed a bug where calling setImage: diff --git a/Source/GSXibParser.m b/Source/GSXibParser.m index 6e6248d41..65e30a012 100644 --- a/Source/GSXibParser.m +++ b/Source/GSXibParser.m @@ -84,20 +84,25 @@ didStartElement: (NSString*)elementName // FIXME: We should use proper memory management here AUTORELEASE(element); - - if (key != nil) + if ([@"document" isEqualToString: elementName]) { - [currentElement setElement: element forKey: key]; + currentElement = element; } else { - // For Arrays - [currentElement addElement: element]; + if (key != nil) + { + [currentElement setElement: element forKey: key]; + } + else + { + // For Arrays + [currentElement addElement: element]; + } + currentElement = element; } - - // Maintain the stack... - [stack addObject: currentElement]; - currentElement = element; + + [stack addObject: currentElement]; } - (void) parser: (NSXMLParser*)parser @@ -105,7 +110,10 @@ didStartElement: (NSString*)elementName namespaceURI: (NSString*)namespaceURI qualifiedName: (NSString*)qName { - currentElement = [stack lastObject]; - [stack removeLastObject]; + if (![@"document" isEqualToString: elementName]) + { + currentElement = [stack lastObject]; + [stack removeLastObject]; + } } @end