JSON解析和XML解析

JSON解析和XML解析


JSON解析
1大括号代表字典
2中括号(小括号)代表数组
3冒号的左右两边分别为键和值(key:value)
4数据和数据之间用逗号隔开

我们在本机上创建一个file.xml,进行解析,并取出年龄35
JSON解析和XML解析

//JSON解析
     本地读取student.xml文件
       NSString *jstr=[NSString stringWithContentsOfFile :[[NSBundle mainBundle]pathForResource:@"File" ofType:@"json"] encoding:NSUTF8StringEncoding error:nil];//取到路径
       //进行解析,因为最外面是字典,所以要用字典类型的对象来接
       NSDictionary *dic=[jstr JSONFragmentValue];
       //下面取值
       //取到hello这个key,取到的是数组里的内容所以要用数组来接
       NSArray *arr=[dic objectForKey:@"hello"];
       //取到下标为1的数组,因为数组里面又是一个字典,所以用字典来接
       NSDictionary *dic2=[arr objectAtIndex:1];
     //取到字典key为age的value,因为取出来的值是字符串,用字符串来接
       NSString *jage=[dic2 objectForKey:@"age"];
       //输出取出的age
       NSLog(@"%@",jage);
//XML解析
同样我们也在本地创建一个File.xml的文件里面包含:
<students>
       <student>
               <name>kellen</name>
               <age>25</age>
               <sex>M</sex>
       </student>
       <student>
               <name>jack</name>
               <age>35</age>
               <sex>M</sex>
       </student>
</students>

       //step1:本地读取student.xml文件
       //获取目录的xml文件
       NSString*xmlPath=[[NSBundle mainBundle]pathForResource:@"File" ofType:@"xml"];
       NSData*xmlData=[[NSData alloc]initWithContentsOfFile:xmlPath];
       //step2:将包含xml内容的字符串转化为document对象
     
       GDataXMLDocument*xmldoc=[[GDataXMLDocument alloc]initWithData:xmlData options:0 error:nil];
     
       //step3:获取到根节点
       //获取根节点(students)
       GDataXMLElement*rootElement=[xmldoc rootElement];
     
       //step4:遍历节点信息
       //获取根节点下的节点(student)
       NSArray*students=[rootElement elementsForName:@"student"];
       NSLog(@"%@",students);
       //使用forin遍历XML中的所有数据
       for (GDataXMLElement*stu in students) {
               //获取name节点的属性
               GDataXMLElement*nameElement=[[stu elementsForName:@"name"]objectAtIndex:0];
               NSString*name=[nameElement stringValue];//获取nameElement
               NSLog(@"Student name is:%@",name);
               //获取age节点的属性
               GDataXMLElement*ageElement=[[stu elementsForName:@"age"]objectAtIndex:0];
               NSString*age=[ageElement stringValue];
               NSLog(@"User age is :%@",age);
       }
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值