xml 解析 json解析
对xml解析之前要进行步骤:
1.添加libxml2.dylib系统库。
2.添加第三方类库,这里使用的是Google的GDataXML。
3.配置第三方类库
首先配置Header search Paths 为如图所示:
然后配置other linker flags,如下图所示:
在要解析的地方导入 GDataXMLNode.h 文件后进行解析:
下面是以xml类型文件为例
NSString *xmlPath =[[NSBundle mainBundle] pathForResource:@"stu" ofType:@"xml"];
    NSString *xmlstr = [NSString stringWithContentsOfFile:xmlPath encoding:4 error:nil];
    
    //用字符串初始化xml
    GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithXMLString:xmlstr options:0 error:nil];
//获取根节点
    GDataXMLElement *root = doc.rootElement;
    NSLog(@"%@",root);
//获取名字为student 的子节点
    NSArray *studentArr = [root elementsForName:@"student"];
    NSLog(@"%@",studentArr);
//快速遍历子节点
    for (GDataXMLElement *e in studentArr) {
        NSArray *stuArr = e.children;
        NSLog(@"%d",e.childCount);
      //获取子节点的元素
        for (GDataXMLElement *child in stuArr) {
            NSLog(@"%@",child.stringValue);
        }
    }
此方法是在内存中建立树的方法来解析的,所以耗内存,但效率高。系统的是低消耗,低效率。
json 解析:
json 解析方法多种多样 ,这里使用的是SBJSON。因为它够方便,够傻瓜式。
json的规则:
规则: 大括号代表字典,中括号(或者小括号)代表数组。冒号两边分别为键和值。数据与数据之间用逗号分隔。
[{"name":"kallen","age":"26","sex":"男"},{"name":"lily","age":"20","sex":"女"}]
在项目中加入SBJSON第三方类库,导入JSON.h
解析过程:
//先获取JSON数据
NSString *jsonPath = [[NSBundle mainBundle] pathForResource:@"abc" ofType:@"json"];
    NSString *jsonStr = [NSString stringWithContentsOfFile:jsonPath encoding:4 error:nil];
//JSON数据进行解析
    NSArray *stuArr = [jsonStr JSONValue];
    NSLog(@"%@",stuArr);
    for (NSDictionary *dic in stuArr) {
        NSLog(@"%@ , %@ , %@",[dic valueForKey:@"age"],[dic valueForKey:@"name"],[dic valueForKey:@"sex"]);
    }
Json数据是比XML更轻量级的数据。