//创建可变字符串来接收内容
mutableString =[[NSMutableString alloc] init];
mutableArray =[[NSMutableArray alloc] initWithCapacity:0];
NSURL *url =[NSURL URLWithString:@""];
NSURLRequest *request =[NSURLRequest requestWithURL:url];
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
//初始化XML解析对象 把要解析的数据传进去
NSXMLParser *parser =[[NSXMLParser alloc] initWithData:data];
parser.delegate = self;
//开始解析
[parser parse];
//解析开始
- (void)parserDidStartDocument:(NSXMLParser *)parser
{
NSLog(@"解析开始");
}
//遇到开始标签
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqualToString:@"hero"])
{
model =[[HeroModel alloc] init];
}
[mutableString setString:@""];
//NSLog(@"遇到开始标签%@",elementName);
}
//遇到内容(如果内容比较大 那么会调用多次此方法 必须要用可变字符串来接收每次返回的字符)
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
//NSLog(@"遇到内容%@",string);
//保证数据完整性
[mutableString appendString:string];
}
//遇到结束标签
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if ([elementName isEqualToString:@"name"])
{
model.name = mutableString;
}
if ([elementName isEqualToString:@"hero"])
{
[mutableArray addObject:model];
[model release];
}
//NSLog(@"遇到结束标签%@",elementName);
}
//解析结束
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
NSLog(@"解析结束");
NSLog(@"~~~~~~%d",[mutableArray count]);
}
XML 解析
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- XML数据解析 XML数据解析是将数据文档解析成不同的格式,XML现在已经成为一种通用的数据交换格式,它具有平台无...
- 之前想写一个JAXB解析xml与实体类转换的,但是发现JAXB有一定的局限性,有时,在解析非标准xml中的属性值时...
- Senior进阶 网络之数据解析之XML解析和JSON解析的用法 XML解析之SAX解析 XML解析之DOM解析 ...
- 在学习《锋利的jQuery》第六章,jquery与Ajax中 $.get()方法获取XML文档信息时遇到这样一个问...