苹果开发 笔记74GDataXML 解析 xml

ios xml 解析有不同方式,基于sax 和dom ,查看了一些介绍。查阅了一篇老文章介绍不同的解析的类 如何在你的项目选择适合的XML

前段时间第一个学习的ios里面用了这个xml解析,基于系统自带的NSXML 解析器。第三方有几种好用的如 TBXML、GDataXML 、KissXML 等。

GDataXML

下面我们尝试一下 GDataXML 解析了一个xml。
1. 首先点击进去下载GDataXML
2. 下载完拖放到工程目录,作为组使用,配置一下,在Build Phase 的 Link Binary With Library 添加 libxml2.dylib 动态库
3. 在工程Build setting 中找到Header Search Path 添加路径 /usr/include/libxml2 到路径中
4. 编译工程项目

这次我们选用人民网的 rss
http://www.people.com.cn/rss/politics.xml

点击进去可以查看如下的xml结构

item 是新闻的主体。这部分是我们需要解析的地方。在实验当中,构建一个类标记和他一样的即可。这个类用于显示的数据 类。 编写的时候,我们可以快速实验阅读这个库 的一些方法,GDataXML 后来的版本支持xpath 的写法。类似搜索方式读取节点。

下面进行编程一下

#import <Foundation/Foundation.h>

@interface NewsItem : NSObject

@property (nonatomic,strong) NSString *title; //标题
@property (nonatomic,strong) NSString *news_id; //新闻ID
@property (nonatomic,strong) NSString *link;//链接
@property (nonatomic,strong) NSString *guid;//
@property (nonatomic,strong) NSString *pubDate;//发布日期

@end
#import "ViewController.h"
#import "GDataXMLNode.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    NSString *url = @"http://www.people.com.cn/rss/politics.xml";

    NSError *error = nil;
    NSString *xmlStr = [NSString stringWithContentsOfURL:[NSURL URLWithString:url] encoding:NSUTF8StringEncoding error:&error];
    GDataXMLDocument *doc  = [[GDataXMLDocument alloc]initWithXMLString:xmlStr error:&error];

    NSArray *array =  [doc nodesForXPath:@"//item" error:&error];//注:采用路径的写法,也可以channel/item
    for (GDataXMLElement *item in array)
    {
          NSLog(@"%@",[[item elementsForName:@"title"][0] stringValue]);
    }    
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

这样子就可以读取到数据了。奇怪是elementsForName 还要返回数组,有点不理解这个类设计为什么不能直接读取到数据,非要这样子才能凑合使用。

输出结果日志查看调试结果

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇