一,json的解析

json文件:

{"code": "cn","cities":   
[{"name": "保定", "lat": 38849998, "lon": 115569999},
{"name": "驻马店", "lat": 33000000, "lon": 114019996}]
}

定义一个可变数组存放每条数据

@property (nonatomic ,strong) NSMutableArray *cityList;

self.cityList = [NSMutableArray array];//首先别忘了初始化

NSString *paths=[[NSBundle mainBundle]resourcePath];//获取文件所在的文件夹路径
    NSString *path=[paths stringByAppendingPathComponent:@"citys.txt"];//获取文件全路径
    NSData *data=[NSData dataWithContentsOfFile:path];//读取文件到data

//将data数据转化成 json格式的数据到字典中
    NSDictionary *parser=[NSJSONSerialization JSONObjectWithData:data options:0 error:nil];

将字典存入数组:  [self.cityList addObjectsFromArray:[parser objectForKey:@"cities"]];

最后读取:

NSDictionary *dic = self.cityList[indexPath.row];
    NSString *name= [dic objectForKey:@"name"];
    NSString *latitude=[dic objectForKey:@"lat"];
    NSString *longitude=[dic objectForKey:@"lon"];

2,XML的解析,基本和json的解析一样

xml文件内容格式:

<?xml version="1.0"?>
<xml_api_reply version="1">
    <cities>
        <city>
            <name data="保定"/>
            <latitude_e6 data="38849998"/>
            <longitude_e6 data="115569999"/>
        </city>
        <city default="true" >
            <name data="北京"/>
            <latitude_e6 data="39930000"/>
            <longitude_e6 data="116279998"/>
        </city>
 </cities>
</xml_api_reply>

如json一样的步骤:

self.cityList=[[NSMutableArray alloc]init];//定义数组存放字典:name,latitude_e6,longitude_e6
    
    NSString *paths=[[NSBundle mainBundle]resourcePath];
    NSString *path=[paths stringByAppendingPathComponent:@"citys.xml"];
    //从路径获取文件内容
    NSData *data=[NSData dataWithContentsOfFile:path];
    GDataXMLDocument *doc=[[GDataXMLDocument alloc]initWithData:data options:0 error:Nil];
    //得到根节点
    GDataXMLElement *root=doc.rootElement;
    GDataXMLElement *secondLevalRoot=[[root elementsForName:@"cities"]lastObject];
    NSArray *cities=[secondLevalRoot elementsForName:@"city"];
    for (GDataXMLElement * item in cities) {
         NSMutableDictionary *dic = [NSMutableDictionary dictionary];
        
        for (GDataXMLElement *detail in item.children) {
              [dic setObject:[detail attributeForName:@"data"].stringValue forKey:detail.name];
        }
         [self.cityList addObject:dic];
    }
    
最后读取:

NSDictionary *dic = self.cityList[indexPath.row];
    NSString *name= [dic objectForKey:@"name"];
    NSString *latitude=[dic objectForKey:@"latitude_e6"];
    NSString *longitude=[dic objectForKey:@"longitude_e6"];

三,对网络数据进行读取

-(void)didClickParse:(id)sender
{
NSString *urlstring=@"http://124.205.147.26/student/class_12/team_learn/lichanghong.php";
    NSURL *url=[NSURL URLWithString:urlstring];//此处网络地址可以换成超链接
    NSURLRequest *request=[NSURLRequest requestWithURL:url];
    NSData *data=[NSURLConnection sendSynchronousRequest:request returningResponse:Nil error:Nil];
    //NSString *content=[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
    //NSLog(@"%@",content);
    
    //解析
    NSArray *parser=[NSJSONSerialization JSONObjectWithData:data options:0 error:Nil];
    NSLog(@"%@",parser);
    
}

四,对字符串进行解析

首先需要引入协议NSXMLParserDelegate

-(void)didClickParser:(id)sender
{
    NSLog(@"%@",[NSDate date].description);
    NSString *xml=@"<root>    <image>http://www,baidu.com/1.jpg</image> <image>http://www,baidu.com/2.jpg</image>     <image>http://www,baidu.com/3.jpg</image> </root>";
    //NSXMLParser对象进行解析xml结构的字符串
    //dataUsingEncoding使用一种编码方式将字符串转换成二进制数据data对象
    
    NSXMLParser *parser=[[NSXMLParser alloc]initWithData:[xml dataUsingEncoding:NSUTF8StringEncoding]];
    //NSXMLParser的解析方式得到的返回结果是通过代理对象返回的
    NSLog(@"%@",parser);
    parser.delegate=self;
    
    [parser parse];
    
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
      NSLog(@"%@",string);
}

XML JSON解析--基本功能的更多相关文章

  1. UI学习笔记---第十六天XML JSON解析

    一.解析的基本概念 从事先规定好的格式中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据,数据方按照格式获取数据 常见解析方式XML解析JSON解析 二.XML:可扩展标记语言 XML ...

  2. REST Adapter实现SAP PI中的增强XML/JSON格式转换

    SAP标准的REST adapter有着XML/JSON转换的功能,它很有用,因为一方面SAP PI/PO内部以XML格式处理数据,而另一方面,在处理REST架构风格的时候,JSON才是事实上的格式. ...

  3. REST Adapter实现SAP PI中的增强XML/JSON格式转换(转载)

    SAP标准的REST adapter有着XML/JSON转换的功能,它很有用,因为一方面SAP PI/PO内部以XML格式处理数据,而另一方面,在处理REST架构风格的时候,JSON才是事实上的格式. ...

  4. iOS-数据持久化基础-JSON与XML数据解析

    解析的基本概念 所谓“解析”:从事先规定好的格式串中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据.数据获取方按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 一.X ...

  5. Android基础总结(12)——XML和JSON解析

    XML和JSON解析 在网络上传输数据时最常用的格式有两种:XML和JSON.本文主要就是学习如何对这两种常用的数据格式进行解析. 1.XML和JSON的定义 XML:扩展标记语言 (Extensib ...

  6. iOS开发——网络Swift篇&JSON与XML数据解析

    JSON与XML数据解析 JSON数据解析(内置NSJSONSerialization与第三方JSONKit)   一,使用自带的NSJSONSerialization 苹果从IOS5.0后推出了SD ...

  7. 玩转iOS开发 - JSON 和 Xml 数据解析

    前言 Json 和xml是网络开发中经常使用的数据格式,JSON轻量级.xml相对较复杂.所以如今用JSON的比例很大.基本上从server获取的返回数据都是JSON格式的,作为iOS开发人员,解析J ...

  8. 关于iOS中几种第三方对XML/JSON数据解析的使用

    Json XML 大数据时代,我们需要从网络中获取海量的新鲜的各种信息,就不免要跟着两个家伙打交道,这是两种结构化的数据交换格式.一般来讲,我们会从网络获取XML或者Json格式的数据,这些数据有着特 ...

  9. 一起学Android之Xml与Json解析

    概述 在网络中,数据交互通常是以XML和Json的格式进行,所以对这两种格式的数据进行解析,是Android开发中的必备功能,本文以一个简单的小例子,简述Android开发中Xml和Json解析的常用 ...

随机推荐

  1. poj3159 Candies(差分约束,dij+heap)

    poj3159 Candies 这题实质为裸的差分约束. 先看最短路模型:若d[v] >= d[u] + w, 则连边u->v,之后就变成了d[v] <= d[u] + w , 即d ...

  2. input file类型,文件类型的限制

    直接限制input type='file'的文件类型限制,通过accept属性进行设定,多个类型用逗号分隔开,因为accept是html5的新特性,所以火狐和IE的支持就显得单薄了, 如:

  3. java集合——Collection接口

    Collection是Set,List接口的父类接口,用于存储集合类型的数据. 2.方法 int size():返回集合的长度 void clear():清除集合里的所有元素,将集合长度变为0 Ite ...

  4. win7_oracle11g_64位连接32位PLSQL_Developer

      工具/原料 已经装好的64位Oracle数据库 window7_64位的操作系统 PLSQL_Developer 9.0以上版本(目前只有32位的):下面有下载连接! 官方的 instantcli ...

  5. 当进入log文件后就卡机

     问题:一个目录打开,终端就卡死不动了 Ctrl+c也没用,cat一样没用? 解决办法:用的时间或用的数量删除(时间已经否决掉) ls -t |tail -1000 |xargs rm 原因: log ...

  6. word 转 PDF时报错

    利用微软自带的com组件,把word转化成Pdf,利用vs2012调试时没有问题,但是发布到IIS时出错,错误为: 检索 COM 类工厂中 CLSID 为 {} 的组件时失败,原因是出现以下错误: 8 ...

  7. 通过CoreImage生成二维码

    从IOS7开始集成了二维码的生成和读取功能 生成二维码的步骤: 1.导入CoreImage框架 2.通过滤镜CIFilter生成二维码 二维码的内容(传统的条形码只能放数字): 纯文本 名片 URL ...

  8. CCocos2Dx 一段遍历子节点的代码

    CCLog("Lein will hide account!CS_FAST_REGISTER_REQ"); <p> CCNode* child1 = (CCNode*) ...

  9. zabbix3.0部署(LAMP)

    0.1 初始化 #!/bin/sh yum clean all systemctl stop firewalld.service systemctl disable firewalld.service ...

  10. MongoDB Aggregate Methods(2) MonoDB 的 3 种聚合函数

    aggregate(pipeline,options) 指定 group 的 keys, 通过操作符 $push/$addToSet/$sum 等实现简单的 reduce, 不支持函数/自定义变量 g ...