XML解析GDataXML

GDataXML基于libxml2库,需要做以下配置:
1.导入libxml2库

XML解析GDataXML_第1张图片
12-导入libxml2.tbd库.jpg

导入后的结果:

XML解析GDataXML_第2张图片
13-导入libxml2.tbd库.jpg

2.设置libxml2库的头文件搜索路径,为了能找到libxml2库的所有头文件
Buile Settings--> Header Search Paths中加入 /usr/include/libxml2

XML解析GDataXML_第3张图片
14-导入libxml2库头文件搜索路径.jpg

3.设置链接参数,自动链接libxml2库
Buile Settings-->Other Linker Flags中加入-lxml2

XML解析GDataXML_第4张图片
15-自动链接libxml2库.jpg

4.由于GDataXML是非ARC的,因此得设置编译参数

XML解析GDataXML_第5张图片
16-设置该文件为MRC模式.jpg

GDataXML使用:
GDataXML中常用的类
GDataXMLDocument:代表整个XML文档

GDataXMLElement:代表文档中的每个元素,使用attributeForName:方法可以获得属性值
code:

#import "GDataXMLNode.h"

- (void)loadVideos{
    // 0.请求路径
    NSString *urlString = @"http://www.example.com:8080/videos?type=XML";
    NSURL *url = [NSURL URLWithString:urlString];
    // 1.创建请求对象
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    // 2.发送请求
    __weak typeof(self) weakSelf = self;
    [NSURLConnection sendAsynchronousRequest:request
                                       queue:[[NSOperationQueue alloc] init]
                           completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
                               if (connectionError == nil) {
                                   // 加载整个文档
                                   GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:data options:0 error:nil];
                                   // 获得所有video元素
                                   NSArray *elements = [doc.rootElement elementsForName:@"video"];
                                   for (GDataXMLElement *ele in elements) {
                                       Video *video = [[Video alloc] init];
                                       video.name = [ele attributeForName:@"name"].stringValue;
                                       video.url = [ele attributeForName:@"url"].stringValue;
                                       video.image = [ele attributeForName:@"image"].stringValue;
                                       video.length = [ele attributeForName:@"length"].stringValue.integerValue;
                                       [weakSelf.videos addObject:video];
                                   }
                                   
                                   [[NSOperationQueue mainQueue] addOperationWithBlock:^{
                                       [weakSelf.tableView reloadData];
                                   }];
                               }
                           }];
}

你可能感兴趣的:(XML解析GDataXML)