我用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函数好像都没有执行,不知道为什么。