私はiPhoneアプリケーションプログラミングの初心者です。XMLファイルから値を取得してUITableViewに表示できません。動物の名前の値を取得する必要があります。属性なしでXMLを解析する簡単な方法はどうですか?NSXMLParserのドキュメントを読みましたが、データがUITableViewに表示されません。これが私のXMLファイルです:
<?xml version="1.0" encoding="UTF-8"?>
<animals>
<animal>
<id>1</id>
<name>Elephant</name>
</animal>
<animal>
<id>2</id>
<name>Tiger</name>
</animal>
<animal>
<id>3</id>
<name>Bird</name>
</animal>
</animals>
属性を使用したXMLの解析に関するチュートリアルに従いますが、XMLファイルに属性がありません。そしてこれはXMLを解析するための私のコードです:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict {
if([elementName isEqualToString:@"animals"]) {
appDelegate.animals = [[NSMutableArray alloc] init];
}
else if([elementName isEqualToString:@"animal"]) {
}
else if([elementName isEqualToString:@"id"]){
aAnimal = [[Animal alloc] init];
aAnimal.animalID = elementName;
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
if(!currentElementValue)
currentElementValue = [[NSMutableString alloc] initWithString:string];
else
[currentElementValue appendString:string];
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if([elementName isEqualToString:@"animals"])
return;
else if([elementName isEqualToString:@"animal"]) {
}
else if([elementName isEqualToString:@"id"]) {
[appDelegate.animals addObject:aAnimal];
[aAnimal release];
aAnimal = nil;
}
else
[aAnimal setValue:currentElementValue forKey:elementName];
[currentElementValue release];
currentElementValue = nil;
}