美文网首页
XML 解析

XML 解析

作者: yi叶知秋 | 来源:发表于2016-07-07 09:17 被阅读15次
    //创建可变字符串来接收内容
    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 解析

          本文链接:https://www.haomeiwen.com/subject/lcfljttx.html