`

复杂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
分享到:
评论

相关推荐

    xml解析和组装源代码

    XML(eXtensible Markup Language)是一...掌握这些XML相关的知识和技术,可以有效地进行XML解析、组装和数据交换,提升软件开发的效率和灵活性。在实际项目中,根据需求和性能要求选择合适的解析和组装方法至关重要。

    PB 解析XML (代码案例)

    7. **XML DOM操作**:如果使用XMLDOMDocument,还可以进行更复杂的DOM操作,如添加、修改或删除XML节点。例如,使用`CreateElement`, `AppendChild`等方法。 8. **保存XML**:完成数据处理后,可能需要将修改后的...

    java生成复杂xml操作

    总的来说,Java生成复杂XML的操作涉及多个层面,包括基本的DOM API、SAX和StAX解析器、XPath和XSLT处理,以及各种辅助库和工具。理解和熟练掌握这些技术,将极大地提升我们在处理XML任务时的效率和灵活性。

    java http 发送xml报文

    本文将深入解析如何利用Java语言实现HTTP请求,并发送XML格式的数据,同时也会涵盖相关的概念、代码解读以及可能遇到的问题。 ### 一、HTTP与XML基础知识 #### HTTP(超文本传输协议) HTTP是互联网上应用最为广泛...

    基于Java的电网规约101和104规约解析与组装设计源码

    源码中包含了34个Java源文件,这些文件可能包括规约的解析器、消息组装器、通信接口以及数据处理模块等。在编写这些Java源文件时,开发者需要深入了解IEC 60870-5标准,尤其是规约101和104的详细要求,包括它们的...

    使用Gson和Json-lib去解析json和组装Json数据例子

    本文将深入探讨如何使用两个流行的Java库——Gson和Json-lib来解析和组装JSON数据。 **一、Gson库** Gson是由Google开发的一个Java库,它能将Java对象转换为JSON字符串,也能将JSON数据转换回等效的Java对象。使用...

    XML实用大全,语法与应用

    - **将XML组装在一起**:综合运用上述技巧完成复杂的XML文档。 - **XML格式的优点**:总结使用XML格式带来的好处。 - **编制样式单以便显示文档**:通过XSLT来控制XML文档的显示效果。 #### 属性、空标记和XSL ...

    xml学习资料,pdf格式

    - XML解析器可以读取XML文档,并将其转换为计算机可以理解的形式。 - **1.3.3 浏览器和其他工具** - 大多数现代浏览器都支持XML,可以通过内置工具查看XML文档。 - **1.3.4 处理过程总结** - XML文档从创建到最终...

    XML学习中文版

    - **将XML组装在一起:** 如何将各个部分组合成一个完整的XML文档。 **4.3 XML格式的优点** - 阐述了使用XML格式来组织数据的优势,包括易读性、灵活性等。 **4.4 编制样式单以便显示文档** - **与样式单连接:*...

    XML实用大全

    - **4.2.5 将XML组装在一起** - 整合所有部分形成完整的XML文档。 **4.3 XML格式的优点** - 易于阅读、理解、维护和扩展。 - 良好的数据格式化支持跨平台数据交换。 **4.4 编制样式单以便显示文档** - **4.4.1 ...

    一步步实现Spring框架(二)XML注入

    IoC容器负责读取XML配置文件,解析其中的Bean定义,并根据这些定义创建和管理Bean。在Spring中,XML配置文件通常以`beans.xml`的格式存在。 1. **Bean的定义**:在XML配置文件中,每个`<bean>`元素代表一个Java对象...

    这是一个基于Rust实现的字节流结构化序列化/反序列化通用库,可以应用于网络数据包解析、网络数据包组包、网络通信、文件内容解析等

    有了这样的库,开发者可以不必从零开始构建复杂的解析逻辑,而是可以直接利用现成的工具来完成这些任务,大大提高了开发效率和数据处理的准确性。 网络数据包的组包则是指将需要传输的数据组装成符合网络协议的...

    基于Java的动态脚本语言(DSL)解析框架设计源码

    项目中包含的72个文件,既体现了框架的复杂性和完整性,也展示了其作为一个成熟的解决方案所需的各部分组件。 在这些文件中,60个Java源文件构成了框架的主要逻辑部分,包括脚本的解析、执行以及与外部工具的集成。...

    基于Ajax脚本的构件组装技术的研究.pdf

    【基于Ajax脚本的构件组装技术的研究】 Ajax(Asynchronous JavaScript ...它不仅简化了代码,还使得复杂的Web应用程序变得更加灵活和可维护。随着Web技术的不断进步,这种技术将会在更多的应用场景中得到广泛的应用。

    weblogic12c部署webservice错误问题WSSERVLET11

    - 验证Web服务的部署描述符(如web.xml或wsdd.xml)是否完整且符合规范,特别是与Web服务相关的配置项。 2. **环境问题**: - 确保WebLogic Server 12c和JDK版本兼容。不兼容的JDK版本可能导致类似问题。 - 检查...

    tiny-spring-step-4-config-beanfactory-with-xml.zip

    本文对Spring框架的IOC容器和XML配置进行了详细的解析,希望对你理解和使用Spring有所帮助。在后续的学习中,进一步探索Spring的AOP、事务管理等功能,将有助于提升你的开发技能和项目实施能力。

    JSON教程(格式,解析方法等)

    XML是一种标记语言,能够表示复杂的数据结构,但是它的标签格式相对较为冗长。而JSON数据结构简单,仅仅由键值对组成,因此在同等信息量的情况下,JSON文件的大小要比XML文件小,这直接导致了数据传输过程中的带宽...

    springMVC配置详解

    - **配置 MVC 配置文件**:如 `servlet-context.xml`,这里配置视图解析器、拦截器、组件扫描、请求映射等。 - **编写 Controller**:创建处理请求的 Controller 类,通常使用 `@Controller` 注解标记,并使用 `@...

Global site tag (gtag.js) - Google Analytics