[英]Adding XML parsed data to NSMutableArray in iPhone?
I am parsing XML response and adding it to NSMutableArray.The problem islast value of XML response is not getting added to NSMutableArray..Couldn't get where I am going wrong? 我正在解析XML响应并将其添加到NSMutableArray。问题是XML响应的最后一个值未添加到NSMutableArray。无法得到我要去哪里的错误? My XML file looks like this:
我的XML文件如下所示:
<IDList>
<Employee>
<ID>1</ID>
</Employee
<Employee>
<ID>2</ID>
</Employee>
<Employee>
<ID>3</ID>
</Employee>
<Employee>
<ID>4</ID>
</Employee>
</IDList>
And the code Iam writing for parsing is : Iam编写的用于解析的代码是:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
if([elementName isEqualToString:@"IDList"])
{
arr1=[[NSMutableArray alloc] init];
drr1=[[NSMutableDictionary alloc] init];
}
if([elementName isEqualToString:@"Employee"])
{
drr1=[[NSMutableDictionary alloc] init];
}
srr1=[[NSMutableString alloc] init];
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
[srr1 appendString:string];
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if([elementName isEqualToString:@"ID"])
{
[drr1 setObject:srr1 forKey:@"ID"];
[srr1 release],srr1=nil;
return;
}
if([elementName isEqualToString:@"Employee"])
{
[arr1 addObject:drr1];
}
if([elementName isEqualToString:@"IDList"])
{
[drr1 release];
}
[srr1 release],srr1=nil;
}
The result I could see in arr1 is: 我在arr1中看到的结果是:
(
{
ID="1",
}
{
ID="2",
}
{
ID="3",
}
{
ID="",
}
)
I could not see the last value.How can I get all the items ? 我看不到最后一个值。如何获得所有物品?
I don't know if it will fixes anything, but this is what I would do: 我不知道它是否可以解决任何问题,但这是我会做的:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
if ([elementName isEqualToString:@"IDList"]) {
arr1=[[NSMutableArray alloc] init];
}
else if ([elementName isEqualToString:@"Employee"]) {
drr1=[[NSMutableDictionary alloc] init];
[arr1 addObject:drr1];
}
else if ([elementName isEqualToString:@"ID"]) {
srr1=[[NSMutableString alloc] init];
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
[srr1 appendString:string];
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if ([elementName isEqualToString:@"ID"]) {
[drr1 setObject:srr1 forKey:@"ID"];
[srr1 release],srr1=nil;
return;
}
else if ([elementName isEqualToString:@"Employee"]) {
[drr1 release];
drr1 = nil;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.