复杂XML的解析及组装
在实际的项目中,IPhone应用程序会存在很多与服务器之间的数据交互的地方,XML是首选方案。此包可以解决XML文件的解析、对象转化为XML字符串的问题。
1 通过调用解析类,可以将XML的DATA数据转换为XmlNode对象,XmlNode以树形结构进行XML的数据封装,使用的时候按照树形结构进行数据的获取。XmlNode结构如下:
01@interfaceXmlNode: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@propertyBOOLhaveChilds;//是否有子节点
09@propertyBOOLhaveAttribute;//是否有属性
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 @end2 而解析器只需要调用相应的方法,传入相应的参数即可。 -(XmlNode *)getObject:(NSString *)elName xmlData:(NSData *)xmlData;//从data中获取对象,并返回封装对象XmlNode 。-(NSMutableArray *)getList:(NSString *)elName xmlData:(NSData *)xmlData;//从DATA中获得对象集合,集合中也是XmlNode
–ps–
花了点时间重构了之前的xml与对象的转换代码,采用了新的逻辑算法。代码更加精简,并可支持包含节点的属性转换了。
之前有人说看不懂是做什么,所以写了个小UI来进行体现。
xml fun 是小程序,如果发现问题或者有更好的建议请留言,谢谢。