iOS开拓中常用第二方库的选择和布局,数据库互连网之xml解析之第一方解析XML

一.导入第3方插件(GDalaXMLNode)

1.导入第3方插件(GDalaXMLNode)

1、解析JSON类型数据

那篇文章目的在于给协调之后要求时能及时的查到,省得每回都去baidu. 

 

 

//获取文件路线

  1. xml解析库-GDataXML 
    参考作品: 
    GDataXML下载地址: 
    (1)GDataXML.h/m文件 
     
    (2)DGataDefines.h GDataTargetNamespace.h 文件 
     

二.第壹方插件配置

贰.第一方插件配置

NSString *path = [[NSBundle mainBundle]
pathForResource:@”ActivityList” ofType:@”txt”];

铺排进度: 
(1).引入GDataXML(4个文件) 
<arc模式下>.对GDataXML.m增加非arc注释 -fno-objc-arc 
(贰).增添系统库 libxml二.dylib 
(3).Head Search Path中添加 /usr/include/libxml2 
(4).Other linker flags中添加 -lxml2 
(5).xml格式 
================================== 
<?xml version=”1.0″ encoding=”utf-8″?>  
<Users>  
    <User id=”001″>  
        <name>Ryan</name>  
        <age>24</age>  
iOS开拓中常用第二方库的选择和布局,数据库互连网之xml解析之第一方解析XML。    </User>  
    <User id=”002″>  
        <name>Tang</name>  
        <age>23</age>  
    </User>  
</Users> 
================================== 
(6).应用 
================================== 
//获取工程目录的xml文件  
    NSString *filePath = [[NSBundle mainBundle]
pathForResource:@”users” ofType:@”xml”];  
    NSData *xmlData = [[NSData alloc]
initWithContentsOfFile:filePath];  
      
    //使用NSData对象起始化  
    GDataXMLDocument *doc = [[GDataXMLDocument alloc]
initWithData:xmlData  options:0 error:nil];  
      
    //获取根节点(Users)  
    GDataXMLElement *rootElement = [doc rootElement];  
      
    //获取根节点下的节点(User)  
    NSArray *users = [rootElement elementsForName:@”User”];  
      
    for (GDataXMLElement *user in users) {  
        //User节点的id属性  
        NSString *userId = [[user attributeForName:@”id”]
stringValue];  
        NSLog(@”User id is:%@”,userId);  
          
        //获取name节点的值  
        GDataXMLElement *nameElement = [[user
elementsForName:@”name”] objectAtIndex:0];  
        NSString *name = [nameElement stringValue];  
        NSLog(@”User name is:%@”,name);  
          
        //获取age节点的值  
        GDataXMLElement *ageElement = [[user elementsForName:@”age”]
objectAtIndex:0];  
        NSString *age = [ageElement stringValue];  
        NSLog(@”User age is:%@”,age);  
        NSLog(@”——————-“);  
    } 
================================== 

 

 

//将文件数量读入data中

libxml/tree.h
路径

libxml/tree.h
路径

NSData *data = [NSData dataWithContentsOfFile:path];

 

 

//用系统方法NSJSONSerialization解析,得出最外层的数据类型

在品种性质中–Bulid
Settings中查找 Search

在项目性质中–Bulid
Settings中检索 Search

NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data
options:0 error:nil];

 

 

二、XML类型数据解析

–Search Paths 中–Headr
Search Paths 增多路线(/usr/include/libxml2)

–Search Paths 中–Headr
Search Paths 增加路线(/usr/include/libxml2)

一、导入第2方解析工具:GDataXMLNode

 

 

贰、在工程中的Bulid Phases先增多libxml贰.dylib动态库

非ARC

非ARC

三、在工程中的build settings找到Header Search
Path项,增加/usr/include/libxml2

 

 

//获取文件路线

在品种性质中–Bulid
Phases

在类型性质中–Bulid
Phases

NSString *path = [[NSBundle mainBundle] pathForResource:@”Cartoon”
ofType:@”xml”];

 

 

//将文件数量读入data中

–Compile Sources
中–GDataXMLNode.m 增添参数(-fno-objc-arc)

–Compile Sources
中–GDataXMLNode.m 加多参数(-fno-objc-arc)

NSData *data = [NSData dataWithContentsOfFile:path];

 

 

//创造GDataXMLDocument对象,此时XML文件内享有节点以树的款式存在GDataXMLDocument

其3方库文件加载

其叁方库文件加载

GDataXMLDocument *dom = [[GDataXMLDocument alloc] initWithData:data
options:0 error:nil];

 

 

//获取根节点,根节点里面包涵了XML得全数音讯

在档次性质中–Bulid
Phases–Link Binary With Libraies–libxml贰 文件

在品种性质中–Bulid
Phases–Link Binary With Libraies–libxml二 文件

GDataXMLElement *rootElement = dom.rootElement;

 

 

//    NSLog(@”rootElement–>%@”,rootElement.name);

三.采用第3方插件

叁.使用第一方插件

for (GDataXMLElement *subElement in rootElement.children) {

 

 

//        NSLog(@”subElement–>%@”,subElement.name);

//设置URL

//设置URL

for (GDataXMLElement *child in subElement.children) {

 

 

//            NSLog(@”child—>%@”,child.name);

NSURL * url=[NSULANDL
URubiconLwithString:@”XML远程路径”];

NSURL * url=[NSUCR-VL
U途锐LwithString:@”XML远程路线”];

Cartoon *cartoon = [[Cartoon alloc] init];

 

 

for (GDataXMLElement *subChild in child.children) {

//会话

//会话

[cartoon setValue:subChild.stringValue forKey:subChild.name];

 

 

//                NSLog(@”subChild–>>>>%@”,subChild.name);

NSURLSession *
session=[NSURLSession sharedSession];

NSURLSession *
session=[NSURLSession sharedSession];

}

 

 

//任务

//任务

 

 

NSURLSessionDataTask *
task=[session dataTaskWithURL:url completionHandler:^(){

NSURLSessionDataTask *
task=[session dataTaskWithURL:url completionHandler:^(){

 

 

}];

}];

 

 

//任务伊始

//职责开头

 

 

[task resume];

[task resume];

 

 

澳门葡京备用网址 ,//数据安全体署

//数据安全配置

 

 

info.plist—OPen
As–Source Code

info.plist—OPen
As–Source Code

 

 

添加

添加

 

 

<key>NSAppTransportSecurity</key>

<key>NSAppTransportSecurity</key>

 

 

<dict>

<dict>

 

 

<key>NSAllowsArbitraryLoads</key>

<key>NSAllowsArbitraryLoads</key>

 

 

<true/>

<true/>

 

 

</dict>

</dict>

 

 

导入第3方库

导入第二方库

 

 

#import
“GDataXMLNode.h”

#import
“GDataXMLNode.h”

 

 

基于文档的解析

依据文书档案的分析

 

 

//创建三个文书档案

//创立多个文书档案

 

 

GDataXMLDocument * doc
=[[GDataXMLDocument alloc] initWithData:data options:0
error:nil];

GDataXMLDocument * doc
=[[GDataXMLDocument alloc] initWithData:data options:0
error:nil];

 

 

if(doc){

if(doc){

 

 

//得到根成分

//获得根成分

 

 

GDataXmLElement
*rootElement=doc.rootElement;

GDataXmLElement
*rootElement=doc.rootElement;

 

 

//快捷遍历

//快捷遍历

 

 

for(GDataXmLElement *
student in rootElement.children){

for(GDataXmLElement *
student in rootElement.children){

 

 

for(GDataXmLElement *
property in student.children){

for(GDataXmLElement *
property in student.children){

 

 

NSLog(@”%@,%@”,
property.name,proparey.stringValue):

NSLog(@”%@,%@”,
property.name,proparey.stringValue):

 

 

}

}

 

 

}

}

 

 

}else{

}else{

 

 

}

}

 

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*
*
Website