iOS学习之解析XML数据

本文详细介绍了XML解析的两种方式:DOM和SAX,并通过NSXMLParser展示了如何使用SAX进行解析。此外,还介绍了GDataXML作为DOM方式解析XML的工具,包括配置步骤和使用示例。
//xml的解析方式2
DOM:
一次性将整个xml文档加载进内存比较适合解析小文件
SAX
从根元素开始 一个一个解析

//解析手段
NSXMLParser :SAX
方式解析 常用(大文件)
libxml2:
C语言默认在iOS 同时支持DOMSAX方式解析
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方式(需要进行以下配置)
*导入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 *ele in elements) {
   
//转换为数据模型
    yzModel *model = [[yzModel alloc] init];
    model.name = [ele attributeForName:
@"name"].stringValue;
    [array addObject:model];
}
return
array;

本 PPT 介绍了制药厂房中供配电系统的总体概念与设计要点,内容包括: 洁净厂房的特点及其对供配电系统的特殊要求; 供配电设计的一般原则与依据的国家/行业标准; 从上级电网到工厂变电所、终端配电的总体结构与模块化设计思路; 供配电范围:动力配电、照明、通讯、接地、防雷与消防等; 动力配电中电压等级、接地系统形式(如 TN-S)、负荷等级与可靠性、UPS 配置等; 照明的电源方式、光源选择、安装方式、应急与备用照明要求; 通讯系统、监控系统在生产管理与消防中的作用; 接地与等电位连接、防雷等级与防雷措施; 消防设施及其专用供电(消防泵、排烟风机、消防控制室、应急照明等); 常见高压柜、动力柜、照明箱等配电设备案例及部分设计图纸示意; 公司已完成的典型项目案例。 1. 工程背景与总体框架 所属领域:制药厂房工程的公用工程系统,其中本 PPT 聚焦于供配电系统。 放在整个公用工程中的位置:与给排水、纯化水/注射用水、气体与热力、暖通空调、自动化控制等系统并列。 2. Part 01 供配电概述 2.1 洁净厂房的特点 空间密闭,结构复杂、走向曲折; 单相设备、仪器种类多,工艺设备昂贵、精密; 装修材料与工艺材料种类多,对尘埃、静电等更敏感。 这些特点决定了:供配电系统要安全可靠、减少积尘、便于清洁和维护。 2.2 供配电总则 供配电设计应满足: 可靠、经济、适用; 保障人身与财产安全; 便于安装与维护; 采用技术先进的设备与方案。 2.3 设计依据与规范 引用了大量俄语标准(ГОСТ、СНиП、SanPiN 等)以及国家、行业和地方规范,作为设计的法规基础文件,包括: 电气设备、接线、接地、电气安全; 建筑物电气装置、照明标准; 卫生与安全相关规范等。 3. Part 02 供配电总览 从电源系统整体结构进行总览: 上级:地方电网; 工厂变电所(10kV 配电装置、变压
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值