在实际的项目中,IPhone应用程序会存在很多与服务器之间的数据交互的地方,XML是首选方案。
此包可以解决XML文件的解析、对象转化为XML字符串的问题。

1 通过调用解析类,可以将XML的DATA数据转换为XmlNode对象,XmlNode以树形结构进行XML的数据封装,使用的时候按照树形结构进行数据的获取。
XmlNode结构如下:

01    @ interface XmlNode : NSObject {
02
03    }
04    @property(nonatomic,retain)NSMutableDictionary *attributes;//属性
05    @property(nonatomic,retain)NSMutableArray *childs;//下级子节点
06    @property(nonatomic,retain)NSString *name;//节点名称
07    @property(nonatomic,retain)NSString *value;//节点值
08    @property BOOL haveChilds;//是否有子节点
09    @property BOOL haveAttribute;//是否有属性
10    @property(nonatomic,retain)NSMutableString *xmlString;
11    -(void)addAttribute:(NSDictionary *)att;
12    -(void)addChild:(XmlNode *)node;
13    -(NSString *)getXmlString;//将此对象装换为XML字符串
14    -(NSString *)getNodeValue:(NSString *)nodeName;//在此节点中根据子节点名称获得子节点值
15    -(NSString *)getAttributeValue:(NSString *)attName;//获得此节点的属性值
16    @end

2 而解析器只需要调用相应的方法,传入相应的参数即可。 -(XmlNode *)getObject:(NSString *)elName xmlData:(NSData *)xmlData;//从data中获取对象,并返回封装对象XmlNode 。
-(NSMutableArray *)getList:(NSString *)elName xmlData:(NSData *)xmlData;//从DATA中获得对象集合,集合中也是XmlNode

–ps–

花了点时间重构了之前的xml与对象的转换代码,采用了新的逻辑算法。代码更加精简,并可支持包含节点的属性转换了。

之前有人说看不懂是做什么,所以写了个小UI来进行体现。

xml fun 是小程序,如果发现问题或者有更好的建议请留言,谢谢。

源码下载地址:http://dl.dbank.com/c0qt3eeact
转自iOS分享网 http://iosshare.cn

转载于:https://www.cnblogs.com/516inc/archive/2012/11/08/2760539.html

复杂XML的解析及组装相关推荐

  1. 高效的XML解析与组装-fasterxml

    高效的XML解析与组装-fasterxml 写在前面 初步的解析工具选择-XStream fasterxml的使用 请求XML pom.xml 报文的实体类定义 组装以及解析工具 后记 写在前面 最近 ...

  2. python之XML文件解析

    python对XML的解析 常见的XML编程接口有DOM和SAX,这两种接口处理XML文件的方式不同,当然使用场合也不同. python有三种方法解析XML,分别是SAX,DOM,以及ElementT ...

  3. Android XML pull 解析器

    Android 并未提供对 Java StAX API 的支持.但是,Android 确实附带了一个 pull 解析器,其工作方式类似于 StAX.它允许您的应用程序代码从解析器中获取事件,这与 SA ...

  4. iOS - XML 数据解析

    前言 @interface NSXMLParser : NSObjectpublic class NSXMLParser : NSObject 1.XML 数据 XML(Extensible Mark ...

  5. Python XML的解析与创建

    以下内容为装载: 文章出处 http://blog.csdn.net/SeeTheWorld518/article/details/49535211 XML解析基本思路是 现将xml 文档内容一次性全 ...

  6. Android开发历程_18(XML文件解析)

    前言  本文主要介绍在Android中怎样来解析XML文件.主要采用的是SAX机制,SAX全称为Simple API for XML,它既是一种接口,也是一个软件包.作为接口,SAX是事件驱动型XML ...

  7. php xml对象解析_php解析xml 的四种简单方法(附实例)

    XML处理是开发过程中经常遇到的,PHP对其也有很丰富的支持,本文只是对其中某几种解析技术做简要说明,包括:Xml parser, SimpleXML, XMLReader, DOMDocument. ...

  8. 开源分布式中间件 DBLE Schema.xml 配置解析

    文章来源:爱可生开源社区 作者:张沈波 1.DBLE项目介绍 DBLE 是企业级开源分布式中间件,江湖人送外号 "MyCat Plus":以其简单稳定,持续维护,良好的社区环境和广 ...

  9. iOS边练边学--iOS中的XML数据解析

    XML的解析方式 SAX 大小文件都可以 NSXMLParser DOM 最好是小文件 GDataXML NSXMLParser的用法 创建解析器来解析 // 创建XML解析器 NSXMLParser ...

最新文章

  1. 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来
  2. 【若依(ruoyi)】swagger 自定义 swagger-ui.html 的路径
  3. 宏定义和Typedef区别?
  4. DHCP与DHCP中继简介
  5. 通讯录排序 (20分)_算法入门篇:简单的排序算法
  6. matlab tf离散,求matlab离散化程序对于一个二阶传函,求其在MATLAB中的离散化程序.抱歉,没办法写清楚传函表达式.我试试:Gp(...
  7. java中使用okhttpsoap,Android okHttp网络请求之Retrofit+Okhttp+RxJava组合
  8. leetcode712. 两个字符串的最小ASCII删除和(动态规划)-Gogo
  9. Objective-C 的动态提示和技巧
  10. 一文尽览 ECCV 2020 旷视研究院15篇论文
  11. 编写函数main求3!+6!+9!python_Python day 6(3) Python 函数式编程1
  12. 德克萨斯州ADRN组织支持12种加密货币捐赠 现已收到700美元ETH捐款
  13. mysql学习笔记 ----外键.myisam和innodb的区别
  14. 回溯法——批处理作业调度
  15. 软件需求工程 高校教学平台 项目总体计划
  16. kmeans聚类算法_k-means聚类算法原理与参数调优详解
  17. G. I love Codeforces
  18. 如何用VBA从身份证号码中提取性别
  19. 教你查找电磁辐射骚扰原因及整改步骤
  20. 智慧服务型政务平台规划方案(ppt)

热门文章

  1. webpack 独立打包 css 文件
  2. 『 效率工具 』Spring Boot版的轻量级代码生成器,减少70%以上的开发任务
  3. Linux常用命令: zip、unzip 压缩和解压缩命令
  4. 组合数据类型练习、英语词频统计
  5. hdu 5008 Boring String Problem(后缀数组+rmq)
  6. Codeforces round 396(Div. 2) 题解
  7. linux命令总结----转载
  8. JS:a=b=c,a=?
  9. 绑定到对象上的copyWithin方法
  10. 激活层是每一层都有吗_89小户型复式这样装,每一层都设计得很棒,完工后秒变小区样板间,邻居前来取经...