XML解析

来源:互联网 发布:请各位知悉还是悉知 编辑:程序博客网 时间:2024/06/06 08:46

//xml json

//GDataXMLNode –> xml 100k XPath

//sax (NSXMLParser) 节省内存 不能读取指定的数据
//dom (GDataXMLNode) 读取指定的数据 浪费内存

//GDataXMLNode —> 配置工程

//1.依赖一个库文件 libxml2 .a
//2.添加库文件的路径
//3.GDataXMLNode (MRC) —> arc 编译 MRC -fno-objc-arc
// -fobjc-arc

import “ViewController.h”
import “AFNetworking.h”
import “GDataXMLNode.h”

@interface ViewController ()

@end

@implementation ViewController

-(void)GData
{
AFHTTPRequestOperationManager *man = [AFHTTPRequestOperationManager manager];
man.responseSerializer = [AFHTTPResponseSerializer serializer];
[man GET:@”http://.xml” parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:responseObject options:0 error:nil];

    //Students    GDataXMLElement *studentsEle = doc.rootElement;    //tq    NSArray *tqEleArray = [studentsEle elementsForName:@"tq"];    GDataXMLElement *tqEle = tqEleArray[0];    //Student -->  zhangsan    GDataXMLElement *studentEle = [tqEle elementsForName:@"Student"][0];    //name    GDataXMLElement *nameEle = [studentEle elementsForName:@"name"][0];    NSLog(@"%@",[nameEle stringValue]); //zhangsan    GDataXMLElement *ageEle = [studentEle elementsForName:@"age"][0];    NSLog(@"%@",[ageEle stringValue]); //10    //取得属性的值    NSLog(@"%@",[[ageEle attributeForName:@"type"] stringValue]);} failure:^(AFHTTPRequestOperation *operation, NSError *error) {}];

}

//http://www.oschina.net/action/api/tweet_list?uid=0&pageIndex=1&pageSize=15

  • (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    //XPath /Students/tq/Student 绝对路径
    // //Student[1] 相对路径
    // //Student[last()] 最后一个元素
    // //Student[name = ‘zhangsan’] 指定名字的元素
    // //Student[age < 50] 年龄小于50的元素

    AFHTTPRequestOperationManager *man = [AFHTTPRequestOperationManager manager];
    man.responseSerializer = [AFHTTPResponseSerializer serializer];
    [man GET:@”http://.xml” parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
    GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:responseObject options:0 error:nil];
    NSArray *eleArray = [doc nodesForXPath:@”//Student[age < 50]” error:nil];

    for (GDataXMLElement *ele in eleArray) {    NSLog(@"%@",[[ele elementsForName:@"name"][0] stringValue]);    NSLog(@"%@",[[ele elementsForName:@"age"][0] stringValue]);}

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {

    }];
    }

0 0