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数据结构.
}
补充:Web开发 , 其他 ,