我是 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;
}