加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

复杂XML的解析及组装

发布时间:2020-12-16 05:12:48 所属栏目:百科 来源:网络整理
导读:在实际的项目中,IPhone应用程序会存在很多与服务器之间的数据交互的地方,XML是首选方案。 此包可以解决XML文件的解析、对象转化为XML字符串的问题。 1 通过调用解析类,可以将XML的DATA数据转换为XmlNode对象,XmlNode以树形结构进行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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读