引言:
在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
源码代码地址:
你的选择是做或不做,但不做就永远不会有机会