• iOS_OC 解析XML文件


    NSXMLParserDelegate

    /* 开始解析xml文件,在开始解析xml节点前,通过该方法可以做一些初始化工作 */
    - (void)parserDidStartDocument:(NSXMLParser *)parser
    {

    NSLog(@"开始解析xml文件");

    [spinner_view startAnimating];
    newsTitles = nil;
    newsDescription = nil;
    newsPublicDates = nil;
    tempString = nil;
    showxml_textView.text = @"";
    NSLog(@"开始解析xml文件");

    }

    /* 当解析器对象遇到xml的开始标记时,调用这个方法开始解析该节点 */
    - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
    {
    NSLog(@"发现节点");

    if([elementName isEqualToString:@"title"])
    {
    if(newsTitles == nil)
    newsTitles = [[NSMutableArray alloc] init];
    }
    else if([elementName isEqualToString:@"description"])
    {
    if(newsDescription == nil)
    newsDescription = [[NSMutableArray alloc] init];
    }
    else if([elementName isEqualToString:@"pubDate"])
    {
    if(newsPublicDates == nil)
    newsPublicDates = [[NSMutableArray alloc] init];
    }
    else {

    }
    }

    /* 当解析器找到开始标记和结束标记之间的字符时,调用这个方法解析当前节点的所有字符 */
    - (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
    {
    NSLog(@"正在解析节点内容");
    if(self.tempString == nil)
    self.tempString = [[NSMutableString alloc] init];
    [self.tempString appendString:string];
    }

    /* 当解析器对象遇到xml的结束标记时,调用这个方法完成解析该节点 */
    - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
    {
    NSLog(@"解析节点结束");
    if([elementName isEqualToString:@"title"])
    {
    [newsTitles addObject:self.tempString];
    }
    else if([elementName isEqualToString:@"description"])
    {
    [newsDescription addObject:self.tempString];
    }
    else if([elementName isEqualToString:@"pubDate"])
    {
    [newsPublicDates addObject:self.tempString];
    }
    else {

    }
    self.tempString = nil;
    }

    /* 解析xml出错的处理方法 */
    - (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError {
    NSLog(@"解析xml出错:%@", parseError);
    }

    /* 解析xml文件结束 */
    - (void)parserDidEndDocument:(NSXMLParser *)parser
    {
    if (!tempString) {
    tempString = [[NSMutableString alloc] init];
    }
    for (int i = 2; i < 10; i++) {
    [tempString appendString:newsTitles[i + 1]];
    [tempString appendString:newsDescription[i]];
    [tempString appendString:newsPublicDates[i]];
    [tempString appendString:@" ------------------------------------------------"];
    }

    showxml_textView.text = tempString;
    NSLog(@"解析xml文件结束");
    [spinner_view stopAnimating];
    }

  • 相关阅读:
    Python的优点和缺点
    如何在sed中使用变量方法及其简单
    shell脚本练习,创建数据文件注册用户并将用户信息存入文件内,用于模拟登录时使用
    shell脚本常用参数与格式
    运维方向和运维需要掌握的基本面
    linux系统awk命令精解
    数组去重方式
    原生js封装cookie获取、设置及删除
    sublime 浏览器快捷键设置
    background-image实现border效果及多图png如何实现background-size为原图一半
  • 原文地址:https://www.cnblogs.com/lizhen24/p/5979560.html
Copyright © 2020-2023  润新知