JSON解析、XML解析
2015-07-27 10:39
513 查看
JSON解析
1大括号代表字典
2中括号(小括号)代表数组
3冒号的左右两边分别为键和值(key:value)
4数据和数据之间用逗号隔开
我们在本机上创建一个file.xml,进行解析,并取出年龄35
//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);
}
}
1大括号代表字典
2中括号(小括号)代表数组
3冒号的左右两边分别为键和值(key:value)
4数据和数据之间用逗号隔开
我们在本机上创建一个file.xml,进行解析,并取出年龄35
//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);
}
}
相关文章推荐
- 去除JSP页面自动生成的空行
- js加载函数addLoadEvent()
- js选择器
- 百度地图的简单使用 ——html js
- JavaScript判断IE版本
- JSTL函数fn.tld
- ExtJS遮罩层Ext.loadMask
- 思维导图之----javascript中function类型知识树
- Javascript的匿名函数与自执行
- JS写的排序算法演示
- createjs初学-制作一个简单的TextButton
- 思维导图之----javascript正则表达式知识树
- javascript - 【事件冒泡】和【事件捕获】
- JS实现冒泡排序,插入排序和快速排序(从input中获取内容)
- JS获取坐标
- JS 动态加载脚本的4种方法
- fastjson忽略某个属性
- js异步加载的三种解决方案
- js在方法Ajax请求数据来推断,验证无效(OnClientClick="return Method();"),或者直接运行的代码隐藏
- jsp <%%>java代码块获取<s:property的值