IOS xml 与NSDictionary 互相转换

引言:

在ios中经常遇到 xml文件或字符串 转换成NSDictionary;

需求:

web服务端请求和返回的数据格式为xml;需根据解析xml文件动态生成控件;表单可能填值并需临时保存;一个表单就是<a/>包含内容,表单只要id,name就行;

如果表单填写值,需再<a/>里添加value。

<a>

<f>1</f>   <!--id-->

<n>2ewew</n>  <!--名字-->

<q>2ewew</q> <!--验证-->

</a>

<a/>

..................

参考https://codeload.github.com/nicklockwood/XMLDictionary/zip/master

并在XMLDictionary.m文件找到innertext并修改如下:

- (id)innerText

{

id text = self[XMLDictionaryTextKey];

if ([text isKindOfClass:[NSArray class]])

{

return [text componentsJoinedByString:@"\n"];

}

else

{

//判断value值是否为空

if ([(NSString *)text length]==0) {

return @"";

}else

return text;

}

}

以上修改后 不管1、<a><f><t><t/><f/><a>还是2、<a><f><t>4424<t/><f/><a/>

xml 与NSDictionary 都可以互相转换;

否则

出现如下情况:

<?xml version="1.0" encoding="utf-8"?><transactions><transaction><head></head></transaction></transactions>

1、

dictionary: {

"__name" = transactions;

}

XMLString==========

<transactions/>======

修改后

dictionary: {

"__name" = transactions;

transaction =     {

head = "";

};

}

MLString==========

<transactions><transaction><head></head>

</transaction>

</transactions>======

参考https://codeload.github.com/nicklockwood/XMLDictionary/zip/master

源码代码地址:

时间: 2024-12-17 05:22:52

IOS xml 与NSDictionary 互相转换的相关文章

IOS开发之----NSDictionary,JSON和XML互相转换

本文永久地址为 http://www.cnblogs.com/ChenYilong/p/4044521.html,转载请注明出处. ? ? -(void)test { ? ? //XML文本范例 ? ? NSString *testXMLString = @"Cake0.55RegularChocolateBlueberryNoneGlazedSugar"; ?? ? ? ? NSLog(@"xml string[\n%@\n]", testXMLString);

iOS xml解析

iOS xml 解析方法有两种:SAX , DOM. SAX 不用借助第三方,在解析过程中逐行解析.(NSXMLParser,需要实现代理),具体步骤: 1.获取文件路径. 2.创建 NSXMLParser 对象. 3.遵守协议,设置代理. 4.实现代理方法 1>- (void)parserDidStartDocument:  ---- 开始解析 2>- (void)parserDidEndDocument: ----解析结束 3>- (void)parser:didStartEleme

(转)iOS XML JSON SQLite CoreData 数据持久化

一.文件操作 1.因为应用是在沙盒(Sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件: * Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录 * tmp:存放临时文件,iTunes不会备份和恢复此目录,此目录下文件可能会在应用退出后删除 * Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下的文件不会在应用退出删除 2.相关方法:       # 使用NSSearchPathForDiretoriesI

iOS XML/JSON解析

<a target=_blank href="http://download.csdn.net/detail/vaercly/7908319">点击打开下载链接iOS,XML/JSON解析</a> // FInterPreterVC.m // FInterpreter // // Created by lanouhn on 14-9-11. // Copyright (c) 2014年 [email protected] 陈聪雷. All rights rese

XML与JSON的转换

-(void)test { //XML文本范例 NSString *testXMLString = @"Cake0.55RegularChocolateBlueberryNoneGlazedSugar"; NSLog(@"xml string[\n%@\n]", testXMLString); // 解析XML为NSDictionary NSError *parseError = nil; NSDictionary *xmlDictionary = [XMLRead

使用JAXB实现JAVA对象和XML字符串的互相转换实例

测试类: package com.yanek.test; import java.util.ArrayList; import java.util.List; import com.yanek.test.JaxbUtil.CollectionWrapper; public class Test { /** * @param args */ public static void main(String[] args) { //创建java对象 Hotel hotel=new Hotel(); ho

json:JSONObject包的具体使用(JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包)

1.JSONObject介绍 JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包. 2.下载jar包 http://xiazai.jb51.net/201707/yuanma/lib_jb51.rar 提供了除JSONObject的jar之外依赖的其他6个jar包,一共7个jar文件 说明:因为工作中项目用到的版本是1.1的对应jdk1.3的版本,故本篇博客是基于1.1版本介绍的. 对应此版本的javadoc下载

ios XML,JSON,数组解析并转换成NSMutableArray(List&lt;class&gt;)

一.简介 JSON解析: 通过正则将JSON([{...},{...}...])分解成多个包含实体实例内容的一小节({...}),在一小节中通过Runtime(运行时)(<objc/runtime.h>)将实体所有属性值找到并赋值(正则查找实现)到实例({...} --> 实体的一个实例),遍历所有小节({...})就将XML转换成NSMutableArray(类似:List<class>). XML 解析: 通过GDataXml(也可以通过正则)将XML分解成多个包含实体实

iOS XML 系统自带的解析方法

XML 文档解析 使用的五个代理方法1.文档解析开始 parserDidStartDocument:2.文档解析结束 parserDidEndDocument:3.文档 解析元素 开始 didStartElement:4.文档 解析元素 结束 didEndElement:5.解析 文档元素 的内容 parser foundCharacters: #import <UIKit/UIKit.h> @interface ViewController : UIViewController<NSX