复杂XML的解析及组装

在实际的项目中,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

时间: 2024-11-13 08:48:48

复杂XML的解析及组装的相关文章

XML轻松学习手册(5)XML实例解析

xml 第五章:XML实例解析 提纲: 一:实例效果 二:实例解析 1.定义新标识. 2.建立XML文档. 3.建立相应的HTML文件. XML在不同领域有着广泛的应用,比如在科技领域的MathML,无线通信应用的WML,在网络图象方面的SVG等等,我们这里侧重讨论XML在web上的应用.XML在web上应用主要是利用其强大的数据操作能力.一般用XML配合javascript和asp等服务器端程序,可以实现网络上几乎所有的应用需求. 考虑讲解方便,我们在下面介绍一个简单的实例,不包含服务器端程序

java xml报文解析,把name名相同的解析成一个数组存到map集合

问题描述 java xml报文解析,把name名相同的解析成一个数组存到map集合 <?xml version="1.0" encoding="GBK"?> <request version="1.0"> <query> <filed name="FundOID" type="String"></filed> <filed name=&quo

XML和解析

XML和解析 1.什么是XML? Extensible Markup Language,可扩展标记语言. 一般也叫XML文档. 和JSON一样,也是常用的一种用于交互的数据格式. 2.XML语法 1)一个常见的XML文档一般由以下部分组成 1>文档声明: 在XML最前面,必须编写一个文档声明,用来声明XML文档的类型. 最简单的声明如:<?xml version='1.0'?> 2>元素(Element) 一个元素包括了开始标签和结束标签.<video>little y

xml解析-spring.xml如何解析,用dom4j及解析

问题描述 spring.xml如何解析,用dom4j及解析 解决方案 参考:http://blog.csdn.net/redarmy_chen/article/details/12969219 解决方案二: dom4j解析xmldom4j 解析 xmldom4j解析xml

struts2的validation.xml里解析正则表达式的问题

问题描述 我用java写了一个正则表达式.正则的规则是:只能是数字或者字母,但不能全部为数字publicclassTestRegx{publicvoidtest(Stringstr){booleanboo=str.matches("((\d)*)([a-zA-Z]+)((\d)*)([a-zA-Z]*)");System.out.println(boo);}publicstaticvoidmain(String[]args){TestRegxt=newTestRegx();t.test

xml-Android将PPT格式的XML数据解析,并实现演示

问题描述 Android将PPT格式的XML数据解析,并实现演示 Android从服务器获取由PPT转码成的XML数据,在手机端代码实现解析数据并实现播放PPT(不借助第三方演示工具),该如何实现!或者有什么好的想法,有什么支持技术,可以说出来,一起探讨一下!有过相关开发的,哪怕需求不太一样也希望能指点一二 解决方案 如果是xml数据解析之后,要实现播放效果,估计你自己得设定布局的样式和要展示的内容,要是手动来滑动的话,可以使用ViewPager控件来实现滑动的效果,也可以使用Handler消息

javascript-asp.net中如何把xml字符串解析成表格呈现在网页中?(最好有实现代码)

问题描述 asp.net中如何把xml字符串解析成表格呈现在网页中?(最好有实现代码) xml字符串名称为strResponseXml,内容如下: <?xml version='1.0'?>013海淀区0>343朝阳区3>783密云区7>9103海淀区9> 现想通过网页上的一个按钮事件把以上字符串解析成如下的表格形式:FID ID KIND NAME0 1 3 海淀区3 4 3 朝阳区7 8 3 密云区9 10 3 海淀区

Android平台基于Pull方式对XML文件解析与写入方法详解_Android

本文详细讲述了Android平台基于Pull方式对XML文件解析与写入方法.分享给大家供大家参考,具体如下: XML技术在跨平台的情况下的数据交互中得到了广泛的应用,假如我们需要开发一个Android应用程序,需要同服务器端进行数据交互,通过XML文件可以很方便的在Android平台和服务器之间进行数据传输,具体实现涉及到对XML文件进行解析及写入的技术.本文实现在Android平台上基于Pull方式对XML文件解析的技术. XmlPullParser是一个Java实现的开源API包(源码下载地

android编程之XML文件解析方法详解(附源码)_Android

本文实例讲述了android编程之XML文件解析方法.分享给大家供大家参考,具体如下: 在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX.Pull.Dom解析方式.最近做了一个android版的CSDN阅读器,用到了其中的两种(sax,pull),今天对android解析xml的这三种方式进行一次总结. 今天解析的xml示例(channels.xml)如下: <?xml version="1.0" encoding="utf-8