GDataXML修改XML文件

GDataXML和KissXML都可以对xml文件进行修改,本文是对GDataXML-HTML的使用方法进行说明,GDataXML-HTML基于谷歌的GDataXML并且支持HTML的解析,详情请见Github,可以直接使用CocoaPods将其导入到工程当中:pod 'GDataXML-HTML', '~> 1.3.0'

删除节点

//本地xml文件路径
NSString *path = [[NSBundle mainBundle] pathForResource:@"map2" ofType:@"svg"];
//xml字符串
    NSString *xmlStr = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
    //读取xml到内存
    GDataXMLElement *element = [[GDataXMLElement alloc] initWithXMLString:xmlStr error:nil];
//搜索xml中的g标签,GDataXML-HTML也支持XPath
    NSArray *result = [element elementsForName:@"g"];
//寻找需要被删除的节点,此处是所有g标签中的最后一个
    GDataXMLNode *node = (GDataXMLNode *)[result lastObject];
    //删除操作
    [element removeChild:node];

增加节点

//创建<Path/>元素
    GDataXMLElement* pathEle = [GDataXMLNode elementWithName:@"path"];
    //创建id属性
    GDataXMLNode* attr = [GDataXMLNode attributeWithName:@"id" stringValue:@"myid"];
    //为<path/>元素添加id属性
    [pathEle addAttribute:attr];
    //添加<path/>属性
    GDataXMLNode* attr1 = [GDataXMLNode attributeWithName:@"d" stringValue:@"M20 20 C90 40 130 40 180 20 S250 60 280 20"];
    GDataXMLNode* attr2 = [GDataXMLNode attributeWithName:@"stroke" stringValue:@"#C63300"];
    GDataXMLNode* attr3 = [GDataXMLNode attributeWithName:@"fill" stringValue:@"none"];
    GDataXMLNode* attr4 = [GDataXMLNode attributeWithName:@"style" stringValue:@"stroke-width: 5px;"];
    //将以上4个属性添加到pathEle元素中
    [pathEle addAttribute:attr1];
    [pathEle addAttribute:attr2];
    [pathEle addAttribute:attr3];
    [pathEle addAttribute:attr4];
    //将<path/>元素添加为XML文档根元素的子元素
    [element addChild:pathEle];

重新生成XML文件

GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithRootElement:element];
    NSData *xmlData = [doc XMLData];
    NSString *xmlStrrss = [[NSString alloc] initWithData:xmlData encoding:NSUTF8StringEncoding];
NSLog(@"%@",xmlStrrss);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,206评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,118评论 25 708
  • Swift版本点击这里欢迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh阅读 25,528评论 7 249
  • 雾锁寒江,舟推白浪,独影邀月金瓯。任博山香冷,萧吹离愁。不忆沧海桑田,怎奈何,华发满头。杯莫停,泪湿青衫,随风自流...
    兀元阅读 189评论 0 0
  • 沟壑 无法逾越的沟壑 不停洗涤自己的 鱼泡眼在急促喘息 换不了的海 晃晃悠悠的人生 善人大多都低头不语 只期待来生的脸孔
    小小仲马阅读 323评论 0 0