当前位置:编程学习 > wap >>

解析xml数据时的问题

我用acquire_data获得了网页的xml数据:

<?xml version="1.0" encoding="latin1"?>
<user><id>1</id><name>root</name><status>nothing...</status><avator>http://192.168.1.222/ucenter/data/avatar/000/00/00/01_avatar_big.jpg</avator></user>
(前面好像有几个回车,不知有没影响)


然后执行下面的函数
-(void) startParsingData{
NSXMLParser *dataParser=[[NSXMLParser alloc] initWithData:acquire_data];
dataParser.delegate=self;
[dataParser parse];
[dataParser release];
}


-(void) parserDidStartDocument:(NSXMLParser *)parser{
        NSLog(@"haha");
currentText=nil;
}

-(void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI attributes:(NSString *)attributeDict{
NSLog(@"haha");
if(![elementName isEqualToString:@"user"]){
currentText=[[NSMutableString alloc] init];
}
}

-(void) parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
[currentText appendString:string];
}

-(void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qname{
if([elementName isEqualToString:@"id"]){
person_id=[[NSString alloc]initWithString:currentText];
NSLog(currentText);
}
else if([elementName isEqualToString:@"name"]){
name==[[NSString alloc]initWithString:currentText];
NSLog(currentText);
}
else if([elementName isEqualToString:@"status"]){
status==[[NSString alloc]initWithString:currentText];
NSLog(currentText);
}
else if([elementName isEqualToString:@"avator"]){
NSLog(currentText);
}
[currentText release];
currentText=nil;
}


parserDidStartDocument函数中的NSLog(@"haha");执行了,但是didStartElement,foundCharacters和didEndElement函数好像都没有执行,不知道为什么。

--------------------编程问答-------------------- 等待高手解答 --------------------编程问答-------------------- NSLog(@"haha"); 有2行。。。你知道是在哪个函数中调用的吗? --------------------编程问答-------------------- 恩,问题已经得到解决,谢谢ls~ --------------------编程问答-------------------- latin1有问题, 我也遇到过,我用UTF8或者UTF-8就没问题了
补充:移动开发 ,  iPhone
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,