在iphone中使用NSXMLParser进行XML解析?
问题描述:
我解析XML
response.But我没有得到期望的result.Could不明白的地方,我要去错了吗? 我的XML响应如下所示:在iphone中使用NSXMLParser进行XML解析?
<List>
<User>
<Id>1</Id>
</User>
<User>
<Employee>
<Name>John</Name>
<TypeId>0</TypeId>
<Id>0</Id>
</Employee>
<Id>0</Id>
</User>
</List>
从这个我想ID(1)和名称(约翰)的价值。我不想ID(0)
我的解析代码是:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqualToString:@"List"])
{
arr=[[NSMutableArray alloc] init];
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:@"Id"])
{
[drr setObject:srr forKey:@"Id"];
[srr release],srr=nil;
return;
}
if([elementName isEqualToString:@"Name"])
{
[drr setObject:srr forKey:@"Name"];
[srr release],srr=nil;
[arr addObject:drr];
return;
}
if([elementName isEqualToString:@"List"])
{
[drr release];
}
[srr release],srr=nil;
}
我想输出是:
(
{
Name="John";
Id="1";
}
)
但是我得到这样的:
(
{
Name = John;
Id = "0";
},
{
Name = John;
Id = "0";
}
)
我该怎么办呢?
使用本连结[XML解析示例] [1] [1]:http://stackoverflow.com/questions/13117711/unable-to-store-and-retrieve-xml-data-从-的NSMutableArray/13119018#13119018 – NANNAV
在您的示例中列出的XML是非常奇怪。基于它看起来像有2个用户(ID 0和ID 1)的格式,并且该用户有0 /名为约翰其ID也为0的雇员,并且是类型ID 0。这是更奇怪所作的结果你想要“Name = John:Id = 1”的事实。我可以理解,在许多情况下,您不能发布真实的XML数据,但接近真实的东西肯定会帮助我们帮助您。 – NJones
但是我正从服务URL这种反应,我必须这样做,因为它是..我不能改变service.Please帮助.. – Honey