iOS学习之解析XML数据
来源:互联网 发布:深度卷积网络最新发展 编辑:程序博客网 时间:2024/05/16 08:10
//xml的解析方式2种
DOM:一次性将整个xml文档加载进内存比较适合解析小文件
SAX 从根元素开始 一个一个解析
//解析手段
NSXMLParser :SAX 方式解析 常用(大文件)
libxml2:纯C语言默认在iOS中 同时支持DOM和SAX方式解析
GDataXML:DOM方式 常用(小文件)(基于libxml2)
DOM:一次性将整个xml文档加载进内存比较适合解析小文件
SAX 从根元素开始 一个一个解析
//解析手段
NSXMLParser :SAX 方式解析 常用(大文件)
libxml2:纯C语言默认在iOS中 同时支持DOM和SAX方式解析
GDataXML:DOM方式 常用(小文件)(基于libxml2)
1.SAX从根元素开始一个一个解析
//创建解析器
NSXMLParser *parser = [[NSXMLParser alloc]initWithData:data];
//设置代理监听解析过程
parser.delegate = self;
//开始解析 ----调用代理方法
[parser parse];//同步解析在整个方法中卡住(解析完毕才会返回)
returnself.array;
#pragma mark --NSXMLParserDelegate XML解析代理
//开始解析文档时调用
- (void)parserDidStartDocument:(NSXMLParser *)parser
{
// NSLog(@"parserDidStartDocument");
}
//结束解析文档时调用
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
// NSLog(@"parserDidEndDocument");
//解析完所有数据刷新表格
可以在这里刷新表格
}
//解析到一个元素开头时调用
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
NSLog(@"didStartElement---%@",elementName);
//解析的时xml标签中的属性
NSLog(@"%@",attributeDict);
}
//解析到一个元素结尾时调用
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
// NSLog(@"didEndElement----%@",elementName);
}
GDataXML:DOM方式(需要进行以下配置)
//创建解析器
NSXMLParser *parser = [[NSXMLParser alloc]initWithData:data];
//设置代理监听解析过程
parser.delegate = self;
//开始解析 ----调用代理方法
[parser parse];//同步解析在整个方法中卡住(解析完毕才会返回)
returnself.array;
#pragma mark --NSXMLParserDelegate XML解析代理
//开始解析文档时调用
- (void)parserDidStartDocument:(NSXMLParser *)parser
{
// NSLog(@"parserDidStartDocument");
}
//结束解析文档时调用
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
// NSLog(@"parserDidEndDocument");
//解析完所有数据刷新表格
可以在这里刷新表格
}
//解析到一个元素开头时调用
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
NSLog(@"didStartElement---%@",elementName);
//解析的时xml标签中的属性
NSLog(@"%@",attributeDict);
}
//解析到一个元素结尾时调用
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
// NSLog(@"didEndElement----%@",elementName);
}
GDataXML:DOM方式(需要进行以下配置)
*导入libxml2库(general中)
*设置libxml2的头文件搜索路径(/usr/include/libxml2)
在Build settings中搜索serach 找到 header search paths -----》双击添加路径
*告诉编译器使用非arc编译
build phases --》compile source ----》找到相应文件添加compiler flags (-fno-objc-arc)
*告诉系统加载-libxml2库
build settings -->搜索other linker --》在other linker flags 中添加 -lxml2
1》导入GDataXMLNode的文件(谷歌编写的)
GDataXMLDocument *doc = [[GDataXMLDocument alloc]initWithData:data options:0error:nil];
//获取根元素
GDataXMLElement *root = doc.rootElement;
//获取元素 支持Xpath
NSArray *elements = [root elementsForName:@""];
NSMutableArray *array = [NSMutableArray array];
for(GDataXMLElement *elein elements) {
//转换为数据模型
yzModel *model = [[yzModel alloc] init];
model.name = [ele attributeForName:@"name"].stringValue;
[array addObject:model];
}
returnarray;
*告诉编译器使用非arc编译
build phases --》compile source ----》找到相应文件添加compiler flags (-fno-objc-arc)
*告诉系统加载-libxml2库
build settings -->搜索other linker --》在other linker flags 中添加 -lxml2
1》导入GDataXMLNode的文件(谷歌编写的)
GDataXMLDocument *doc = [[GDataXMLDocument alloc]initWithData:data options:0error:nil];
//获取根元素
GDataXMLElement *root = doc.rootElement;
//获取元素 支持Xpath
NSArray *elements = [root elementsForName:@""];
NSMutableArray *array = [NSMutableArray array];
for(GDataXMLElement *elein elements) {
//转换为数据模型
yzModel *model = [[yzModel alloc] init];
model.name = [ele attributeForName:@"name"].stringValue;
[array addObject:model];
}
returnarray;
0 0
- iOS学习之解析XML数据
- iOS之数据解析之XML解析
- iOS之数据解析之XML解析
- IOS学习之十六:网络数据的XML解析
- IOS学习之十六:网络数据的XML解析 .
- IOS学习之十六:网络数据的XML解析
- IOS学习之十六:网络数据的XML解析
- iOS学习笔记之网络篇数据解析(JSON/XML)
- IOS学习之:网络数据的XML解析
- IOS学习之:网络数据的XML解析
- IOS成长之路-解析xml数据
- IOS成长之路-解析xml数据
- iOS中的数据解析之XML
- iOS 网络数据之XML解析
- iOS开发之解析XML格式数据
- iOS之数据解析 (JSON 、XML)
- iOS开发之解析XML数据
- IOS 学习之XML解析(一)
- 第 1 章 一个简单的HelloWorld
- 浅谈EF框架(一)
- Lucene 5.2.1 + jcseg 1.9.6中文分词索引(Lucene 学习序列2)
- CSU_1548_DesignRoad
- 修改Centos的系统时间为北京时间
- iOS学习之解析XML数据
- Tomact运行环境搭建
- jquery 将 json字符串转成js object
- 第 2 章 使用数据库管理用户权限
- UVa 10006 快速幂运算
- 用WINRAR将.bat文件转为自启动
- 欢迎使用CSDN-markdown编辑器
- i2c_register_board_info没有EXPORT_SYMBOL_GPL导出的解决方法
- Could not find resource FancyMapper.xml