您的位置:首页 > Web前端 > Node.js

第三方库GDataXMLNode的配置及使用(XML解析)

2016-03-25 21:36 701 查看
1、具体配置过程如下:
第一步、把下载好的GDataXMLNode.h和GDataXMLNode.m拖到工程里面,随便把要解析的文件放到工程里面,可以解析网络请求的数据,我只举本地的例子



第二步、打开GDataXMLNode.h,找到如下图所示的地方,如果没有,不要慌,按照我下面描述的步骤操作,图中标出的四个地方都是我们要配置的重要信息



第三步、导入依赖库 ,找到工程target ,然后点击Build Phases,选择第三项Link Binary With Libraries展开,点击+号,在弹出框中输入XML进行搜索,选择libxml2.2.tbd或者libxml2.tbd都可以,然后点击Add



第四步、找到Build Settings,在搜索框搜索head,回车找到Search Paths里面的Header Search Paths这一选项,然后双击弹出框那个箭头位置,点击+号,复制上面第2个重要信息里面的内容,粘贴到第5里面的框内,第6为配置以后的信息





第五步、继续在Build Settings里面搜索框搜索other,见下图1,然后找到Other Linker Flags,见下图2,然后双击弹出框那个箭头位置,点击+号,复制第二步里面的第4个信息粘贴到框里面,回车效果见下图5





第六步、找到Build Phases ,展开Complie Sources, 双击弹出框的位置,输入-fno-objc-arc,此命令的意思为在ARC状态下也能使用GDataXMLNode第三方类库





配置结束,现在你应该可以调用GDataXMLNode类库的方法了
2、这是我读取本地的XML文件的代码如下,网络请求的数据使用类似
#import "ViewController.h"

//导入头文件

#import "GDataXMLNode.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];

//初始化可变集合,在ViewController.h里面定义一个可变集合arrM
self.arrM=[NSMutableArray array];

//获取路径
NSString *path=[[NSBundle mainBundle] pathForResource:@"person" ofType:@"xml"];
NSData *xmldata=[[NSData alloc] initWithContentsOfFile:path];

//使用NSdata对象初始化
GDataXMLDocument *doc=[[GDataXMLDocument alloc] initWithData:xmldata options:0 error:nil];

//获取根节点
GDataXMLElement *rootelement=[doc rootElement];

//获取根节点下的节点
NSArray *User=[rootelement elementsForName:@"User"];

for (GDataXMLElement *user in User)
{
//获取User节点的id属性
NSString *userID=[[user attributeForName:@"id"]stringValue];
NSLog(@"%@",userID);

//获取name节点的值
GDataXMLElement *namelement=[[user elementsForName:@"name"]objectAtIndex:0];
NSString *name=[namelement stringValue];
NSLog(@"%@",name);

//获取age节点的值
GDataXMLElement *agelement=[[user elementsForName:@"age"]objectAtIndex:0];
NSString *age=[agelement stringValue];
NSLog(@"%@",age);

//将的到的name,age,id先放到一个字典,然后在拼接成一个集合
NSMutableDictionary *dic=[NSMutableDictionary dictionary];
[dic setObject:userID forKey:@"id"];
[dic setObject:name forKey:@"name"];
[dic setObject:age forKey:@"age"];
[self.arrM addObject:dic];
}
NSLog(@"%@",self.arrM);

}

初学者总结!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: