iOSで以下のxmlを解析しています。
<START>
<ROW>
<COLUMN NAME="NAME">John Smith</COLUMN>
</ROW>
<ROW>
<COLUMN NAME="NAME">Steve Irwin</COLUMN>
</ROW>
</START>
以下のコードを書きました。文字列「amaps.Name」にジョン・スミスが必要ですが、私にとっては文字列は「NAME」として来ています。このxmlを解析するのを手伝ってくれる人はいますか
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict {
if([elementName isEqualToString:@"RESULTS"]) {
//Initialize the array.
appDelegate.maps = [[NSMutableArray alloc] init];
}
else if([elementName isEqualToString:@"COLUMN"]) {
//Initialize the book.
MapDetails* amaps = [[MapDetails alloc] init];
amaps.NAME = [attributeDict objectForKey:@"NAME"];
NSLog(@"Reading id value :%@", amaps.NAME);
}
//NSLog(@"Processing Element: %@", elementName);
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
if(!currentElementValue)
currentElementValue = [[NSMutableString alloc] initWithString:string];
else
[currentElementValue appendString:string];
//NSLog(@"Processing Value: %@", currentElementValue);
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if([elementName isEqualToString:@"RESULTS"])
return;
//There is nothing to do if we encounter the Books element here.
//If we encounter the Book element howevere, we want to add the book object to the array
// and release the object.
if([elementName isEqualToString:@"ROW"])
return;
if([elementName isEqualToString:@"COLUMN"]) {
[appDelegate.maps addObject:amaps];
//[amaps release];
//amaps = nil;
}
else
[amaps setValue:currentElementValue forKey:[elementName lowercaseString]];
[currentElementValue release];
currentElementValue = nil;
}