iOS 分别使用GDataXML和KissXML生成xml

来源:互联网 发布:.net求数组中元素相加 编辑:程序博客网 时间:2024/05/01 13:50

使用GDataXML生成xml

GDataXML只有两个文件GDataXMLNode.h和GDataXMLNode.m。使用方法如下:

将文件包含进工程后,添加libxml2.dylib:


之后添加路径${SDK_ROOT}/usr/include/libxml2:


现在可以编写代码了:

#import "GDataXMLNode.h"

// 创建一个根标签    GDataXMLElement *rootElement = [GDataXMLNode elementWithName:@"root"];    // 创建一个属性    GDataXMLElement *attribute = [GDataXMLNode attributeWithName:@"a" stringValue:@"b"];    // 创建一个标签元素    GDataXMLElement *element = [GDataXMLNode elementWithName:@"user" stringValue:@"HelloWorld"];    // 把标签与属性添加到根标签中    [rootElement addAttribute:attribute];    [rootElement addChild:element];        // 生成xml文件内容    GDataXMLDocument *xmlDoc = [[GDataXMLDocument alloc] initWithRootElement:rootElement];    NSData *data1 = [xmlDoc XMLData];    NSString *xmlString = [[NSString alloc] initWithData:data1 encoding:NSWindowsCP1253StringEncoding];    NSLog(@"xmlString  %@", xmlString);
生成的内容即:

<?xml version="1.0"?>

<root a="b"><user>HelloWorld</user></root>

这里有一个问题,如果stringValue为汉字,生成的xml中汉字为乱码,例如:
GDataXMLElement *attribute = [GDataXMLNode attributeWithName:@"a" stringValue:@"你好"];GDataXMLElement *element = [GDataXMLNode elementWithName:@"user" stringValue:@"HelloWorld你好"];
生成的内容就成了:

<?xml version="1.0"?>

<root a="&#x4F60;&#x597D;"><user>HelloWorld&#x4F60;&#x597D;</user></root>

暂时还不知道怎么解决。


使用KissXML生成xml

github上有KissXML的下载,用KissXML生成的xml标签元素的值汉字正常,使用方法如下:

将KissXML包含进工程:

之后还是要添加libxml2.dylib和路径${SDK_ROOT}/usr/include/libxml2,方法同GdataXML的配置方法。


代码如下:

#import "DDXMLElementAdditions.h"

DDXMLElement *rootElement = [[DDXMLElement alloc] initWithName: @"root"];    DDXMLElement *element = [[DDXMLElement alloc] initWithName: @"test"];    [element setStringValue: @"HelloWorld你好"];    [rootElement addChild: element];    NSString *xmlString = [@"<?xml version=\"1.0\"?>" stringByAppendingString:[rootElement XMLString]];    NSLog(@"xmlString  %@",xmlString);
生成的内容如下:

<?xml version="1.0"?><root><test>HelloWorld你好</test></root>


但是如果属性值有汉字,汉字仍为乱码

给element添加属性:

[element addAttributeWithName:@"test"stringValue:@"你好,joy"];

生成的结果为:

<?xml version="1.0"?><root><test test="&#x4F60;&#x597D;&#xFF0C;joy">HelloWorld你好</test></root>




0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 断奶了有硬块疼怎么办 断奶时乳房有硬块怎么办 憋奶乳房有硬块怎么办 回奶以后有硬块怎么办 回奶里面有肿块怎么办 回奶时候的硬块怎么办 回奶乳房有硬块怎么办 回奶胀痛有硬块怎么办 回奶期间有硬块怎么办 回奶期间乳房有硬块怎么办 回奶乳房有肿块怎么办 牛犊子出生3天喘怎么办 猪高烧不退不吃怎么办 苹果6刷机失败怎么办 uc能看不能下怎么办 苹果6s铃声太小怎么办 苹果6铃声声音小怎么办 苹果7来电铃声小怎么办 红米手机声音小怎么办 微信安装不上去怎么办 6s无法安装微信怎么办 苹果4微信版本低怎么办 新手机没有微信怎么办 新手机登陆微信怎么办 新号码被注册过怎么办 微信注册不了怎么办啊 苹果4铃声不响怎么办 苹果6黑屏没反应怎么办 苹果7卡机黑屏了怎么办 苹果7手机铃声小怎么办 支付宝发现套现怎么办 空调滴水管断了怎么办 地漏下水管断了怎么办 脸上长白色糠疹怎么办 腋下长白色的毛怎么办 饥荒电羊死光了怎么办 6s储存空间虚满怎么办 大胸下垂穿婚纱怎么办 美团签约成功后怎么办 拍婚纱照笑不出来怎么办 长得丑拍婚纱照怎么办