XML解析器 NSXMLParser

 构建XML解析

//1, 构建解析方法
-(void)parseXMLFile:(NSURL *)XMLURL //XMLURL为第一个文件的URL
{
	NSXMLParser *eventParser = [[NSXMLParser alloc] initWithContentsOfURL:XMLURL];
	[eventParser setDelegate:self];  //设置代理为本地
	[eventParser parse];  //开始解析
 
	NSLog(@"end Of parseXMLFile");
}
//2, 解析开始后,所有XML的内容由NSXMLParserDelegate处理
//  所以一定要注意在本地添加<NSXMLParserDelegate>到文件头
//在NSXMLParser读到<p>的时候重写一个<p>标签,原来的是XML中的,无法直接使用
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName 
	namespaceURI:(NSString *)namespaceURI 
	qualifiedName:(NSString *)qName 
	attributes:(NSDictionary *)attributeDict
{
	if ([elementName isEqualToString:@"p"]) {
		[htmlDataString appendFormat:@"<p>"];
		needOrNot = YES;  //我们需要<p>和</p>中间的内容,其余的在end中设置NO
		return;
	}
}
 
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
	if(needOrNot)
	{
		[htmlDataString appendString:string]; //如上,将需要的字段添加到得到的html结构String中
	}
}
 
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName 
	namespaceURI:(NSString *)namespaceURI 
	qualifiedName:(NSString *)qName
{
	if ([elementName isEqualToString:@"p"]) {
		[htmlDataString appendFormat:@"</p>"];
		needOrNot = NO;  //不需要的内容不允许上面的delegate去读取到htmlDataString中
		return;
	}
}
 
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
	NSLog(htmlDataString); //在结束后输出得到的html数据结构.
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值