当我尝试使用 NSXMLParser 解析 XML 文件时,我无法解析所有元素.. XML 响应如下所示:
<AList>
<Details>
<AId>1</AId>
<Date>10/31/2012</Date>
<Time>11:00 AM</Time>
<User>
<Employee>
<Name>Rosy</Name>
</Employee>
<Company>
<Customer>
<CustName>Williams</CustName>
<CustPhone>1232322</CustPhone>
</Customer>
</Company>
</User>
</Details>
<Details>
<AId>2</AId>
<Date>10/31/2012</Date>
<Time>11:30 AM</Time>
<User>
<Employee>
<Name>Mary</Name>
</Employee>
<Company>
<Customer>
<CustName>Christopher</CustName>
<CustPhone>123233323</CustPhone>
</Customer>
</Company>
</User>
</Details>
</AList>
如何获取所有 XML 标记中的所有元素?
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
if([elementName isEqualToString:@"AList"])
{
arr=[[NSMutableArray alloc] init];
}
if([elementName isEqualToString:@"Details"]||[elementName isEqualToString:@"User"])
{
drr=[[NSMutableDictionary alloc] init];
}
srr=[[NSMutableString alloc] init];
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
[srr appendString:string];
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if([elementName isEqualToString:@"AId"])
{
[drr setObject:srr forKey:@"AId"];
[srr release],srr=nil;
return;
}
if([elementName isEqualToString:@"Date"])
{
[drr setObject:srr forKey:@"Date"];
[srr release],srr=nil;
return;
}
if([elementName isEqualToString:@"Time"])
{
[drr setObject:srr forKey:@"Time"];
[srr release],srr=nil;
return;
}
if([elementName isEqualToString:@"Name"])
{
[drr setObject:srr forKey:@"Name"];
[srr release],srr=nil;
return;
}
if([elementName isEqualToString:@"CustName"])
{
[drr setObject:srr forKey:@"CustName"];
[srr release],srr=nil;
return;
}
if([elementName isEqualToString:@"CustPhone"])
{
[arr addObject:drr];
}
if([elementName isEqualToString:@"AList"])
{
[drr release];
}
[srr release],srr=nil;
}
我不想要 CustPhone...我只能从我编写的代码中获取 CustName。我哪里出错了?