XML解析GDataXML

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

12-导入libxml2.tbd库.jpg

导入后的结果:

13-导入libxml2.tbd库.jpg

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

14-导入libxml2库头文件搜索路径.jpg

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

15-自动链接libxml2库.jpg

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

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];
                                   }];
                               }
                           }];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,151评论 25 708
  • JSON JSON和XML都是需要解析的 JSON是一种轻量级的数据格式,一般用于数据交互服务器返回给客户端的数据...
    JonesCxy阅读 1,876评论 2 10
  • 一、什么是XML 全称是ExtensibleMarkupLanguage,译作“可扩展标记语言” 跟JSON一样,...
    小胖子2号阅读 1,054评论 0 2
  • 雪落城墙 一黑一白 是美的搭配 那年夏天 一旁是你 翻开的课本 时间的钟滴滴答答忘记了我们 等我回头找找寻寻快不过...
    西城的北阅读 184评论 0 1
  • 最近在网上经常看到“小萝莉”这个词,不甚理解,于是百度去了。才知道原来这个词是出自纳博科夫的《洛丽塔》,现在常用来...
    老草阅读 1,160评论 2 1