引言:
在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
源码代码地址: