码迷,mamicode.com
首页 > 移动开发 > 详细

IOS JSON/XML解析

时间:2014-11-19 01:38:46      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:style   io   ar   color   os   sp   for   数据   on   

<pre name="code" class="objc">/*---------------------------XML_SAX解析-------------------------------*/

//XML SAX解析
- (IBAction)XML_SAX:(id)sender
{
    NSData *da = [[NSData alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"megage" ofType:@"txt"]];
    //第一步,创建xml解析
    NSXMLParser *Parserdata = [[NSXMLParser alloc] initWithData:da];
    //第二步设置代理
    Parserdata.delegate = self;
    //第三步 启动解析
    [Parserdata parse];
    
    NSLog(@"点我");
}
/*---------------------------XML_SAX代理方法-------------------------------*/
//开始解析------------->>>启动解析的时候走代理方法
- (void)parserDidStartDocument:(NSXMLParser *)parser
{
    //1.在开始解析的时候初始化接收信息的数组,为了不占用内存
    self.megArray = [NSMutableArray array];

}

//开始解析某个节点的时候
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
    //小1.把他的节点接收起来
    self.elementString = elementName;
    if([elementName isEqualToString:@"message"])
    {
        Recorce *meg = [[Recorce alloc] init];
        [self.megArray addObject:meg];
        
    }
}
//找到内容(节点)
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
    Recorce *meg = [self.megArray lastObject];
    //通过节点添加内容
    [meg setValue:string forKey:self.elementString];
    
}
//结束解析某个节点
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
    self.elementString = nil;
}

//完成解析
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
    
    for (Recorce *me in self.megArray) {
        NSLog(@"%@",me);
    }
    
    
}
//解析发生错误的时候
- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError
{
    
}
- (IBAction)XML_DOM:(id)sender
{
    NSData *data = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"megage" ofType:@"txt"]];
    //获取数据
    GDataXMLDocument *document = [[GDataXMLDocument alloc] initWithData:data options:0 error:nil];
    //找到根节点
    GDataXMLElement *Rootelement = document.rootElement;
    self.megArray = [NSMutableArray array];
    //遍历根节点中的子节点,
    for ( GDataXMLElement *em in Rootelement.children )
    {
        message *meg = [[message alloc] init];
        for (GDataXMLElement *GE in em.children)
        {
            [meg setValue:GE.stringValue forKey:GE.name];
        }
        [self.megArray addObject:meg];
        NSLog(@"%@",meg);
    }
    
}

- (IBAction)JSON_KIT:(id)sender
{
    //获得路径
    NSData *data = [[NSData alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"content" ofType:@"txt"]];
    //获得数据(第三方)
    NSArray *dataArray = [data objectFromJSONData];
    NSLog(@"%@",dataArray);
    
}


- (IBAction)JSON:(id)sender
{
    NSData *data = [[NSData alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"content" ofType:@"txt"]];
    NSArray *dataArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];



IOS JSON/XML解析

标签:style   io   ar   color   os   sp   for   数据   on   

原文地址:http://blog.csdn.net/shichangbu123/article/details/41252091

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!