IOS JSON/XML解析

<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];

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-12-08 05:44:48

IOS JSON/XML解析的相关文章

ios json数据解析

刚刚下午那会 弄了个 解析 xml  demo的小例子,本想着json也挺复杂 弄还是 不弄,但是简单的看了下 发现挺简单,这个时候就犹豫了,要不写到博客上来 ? 考虑了很久,还是写上来吧,毕竟json用得太多了,而且算是自己的积累吧,毕竟刚开始学习IOS开发方面的知识,就当是巩固了撒! 还是 先看个效果图吧,如下! 接下来 看下工程目录吧,其实并没有必要,直接建立一个工程就行 ,算了,还是贴上来吧,如下: 工程目录中有个 Notes.json 文件,该文件就是 要解析的json数据了 ,也截下

IOS之XML解析

IOS之XML解析 1.XML格式 <?xml version="1.0" encoding="utf-8" ?> <root> <systemConfig> <CityName>北京</CityName> <CityCode>201</CityCode> <ParentCityCode> 0</ParentCityCode> <areaCode>

JSON&amp;XML 解析总结

JSON & XML解析 JSON(数据传输): JSON具有对象(字典)和数组两种数据格式.字典用“{}”,数组用“[]”.其实也是key-value(字符串,数值,布尔类型,对象,空对象,数组)键值对. JSON 可以与Object-C相互转换  ->则是JSON的解析过程(正向与逆向的解析-为了说明自己定义的正逆)->可用于数据的持久化,将JSON数据写入文件中保存(逆向):从文件中读出数据(正向). JSON ->Object-C(正向):jsondata->jso

ios之json,xml解析

JSON解析步骤: 1.获取json文件路径 NSString*path = [[NSBundle mainBundle] pathForResource:@"Teacher"ofType:@"json"]; 2.读取文件中的data NSData *data = [NSData dataWithContentsOfFile:path]; 3.把data转化为可变数组或者可变字典 是字典还是数组要看json最外层数据是什么.NSJSONSerialization是重

[iOS] XML解析和xml转plist文件(GDataXML)

iOS对于XML的解析有系统自带的SDK--NSXMLParser,鄙人愚拙,只会用GDataXML进行解析,这里仅介绍GData的使用.(以下图为例) 1.对于一个xml文件,先读取出来 NSData *xmlData = [[NSFileManager defaultManager]contentsAtPath:[NSString stringWithFormat:@"%@/%@",[[NSBundle mainBundle] resourcePath],@"test.x

iOS开发XML解析

xml解析主要可以使用CData,libxml2以及NSXMLParser,以下对各个方法给出了相应的例子: 1.CDataXML: 1.1.创建FKBook类 #import <Foundation/Foundation.h> @interface FKBook : NSObject @property (nonatomic , assign) NSInteger bookID; @property (nonatomic , copy) NSString *title; @property

iOS JSON 数据解析

JSON 是比较常用的数据格式,相比 XML 层次更清晰,这里介绍两种解析 JSON 的方式:NSJSONSerialization 和 JSONKit NSJSONSerialization 是 iOS 5 以后推出的,比较好用的 JSON 解析包. JSON 数据格式由对应的 '[',']' 和 '{','}',前者表示数组,后者表示字典. NSJSONSerialization 解析过程: 1.获取文件路径 2.获取文件内容 3.解析 简单小例子: 1 - (IBAction)parser

iOS 关于xml解析的问题

在ios开发中,尽管目前使用的主流数据格式是json,但有时也会碰到xml数据格式,我们还是要硬着头皮去解析,也有很多第三方库比如AFNetWorking 也可以拿来解析xml,但是由于会要用到几个回调方法,本人自己感觉不是很方便,有些麻烦,所以用到了另一个第三方类:GDataXMLNode.h/m 下面简单介绍下如何使用GDataXMLNode第三方类 1.首先去网上下载这个第三方类,加入到你工程里面.如图所示 2.target-->Build settings-->Header Searc

IOS - JSON数据解析 小3种方法

[manager GET:serverURL parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { // 3 解析返回的JSON数据 // 3.1 //        NSDictionary *result1 = (NSDictionary *)responseObject; // 3.2 //        NSString *requestTmp = [NSString string