使用GDXML生成XML文档的步骤如下。

 1、调用GDataXMLNode的elementWithName:方法创建GDataXMLElement对象,对象作为XML文档的根元素。

 2、调用GDataXMLNode的elementWithName:方法不断创建GDataXMLElement对象(XML元素),并利用元素之间的父子关系组织这些XML元素。

 3、调用GDataXMLDocument的initWithRootElement:方法根据指定根元素来生成GDataXMLDocument对象---它代表了XML文档在内存中的形式。

 4、调用GDataXMLDocument对象的XMLData的方法获取XML文档对应的NSFata对象,调用NSData的输出方法将XML文档输出到制定文件或其他储存介质。

使用GDataXML修改XML文档的步骤如下。

 1、使用GDataXMLDocument的方法根据制定XML文档或者XML字符串来生成GDataXMLDocument对象---它代表了XML文档在内存中的形式。

 2、获取GDataXMLDocument对象的根元素,然后利用元素之间的父子关系添加资源上,删除子元素或者修改元素内容。

 3、调用GDataXMLDocument对象的XMLData的方法获取XML文档对应的NSData对象,调用NSData的输出方法将XML文档输出到指定文件或其他储存介质。

下面示例示范了如何使用XML文档保存用户添加的数据。

#import "ViewController.h"
#import "GDataXMLNode.h" @interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextField *idField;
@property (weak, nonatomic) IBOutlet UITextField *nameField;
@property (weak, nonatomic) IBOutlet UITextField *authorField;
@property (weak, nonatomic) IBOutlet UITextField *remarkField; @end @implementation ViewController
- (IBAction)finishEdit:(id)sender {
[sender resignFirstResponder];
} - (void)viewDidLoad {
[super viewDidLoad];
self.xmlPath = [NSHomeDirectory() stringByAppendingPathComponent:@"/books.xml"];
}
- (IBAction)add:(id)sender {
//获取应用界面上4个文本框内的值
NSString* bookId = self.idField.text;
NSString* bookName = self.nameField.text;
NSString* author = self.authorField.text;
NSString* remark = self.remarkField.text;
if (bookId.length > 0 && bookName.length > 0 && author.length > 0 && remark.length > 0) {
//使用NSFileHandle对象根据文件路劲获取到文件
NSFileHandle* file = [NSFileHandle fileHandleForReadingAtPath:self.xmlPath];
//获取文件内容返回NSData对象
NSData* data = [file readabilityHandler];
//定义变量保存将要处理的XML文档对象
GDataXMLDocument* doc;
//定义变量保存XML文档的根元素
GDataXMLElement* rootEle;
//如果data存在,则表明改XML文档已经存在
if (data) {
//根据NSData对象初始化GDataXMLDocument对象
doc = [[GDataXMLDocument alloc]initWithData:data options:0 error:nil]; //获取XML文档的根元素
rootEle = doc.rootElement;
}
//如果XML文档还不存在,则需要新建XML文档
else
{
//创建<books../>元素
rootEle = [GDataXMLNode elementWithName:@"books"]; }
//创建<book.../>元素
GDataXMLElement* bookEle = [GDataXMLNode elementWithName:@"book"];
//创建id属性,属性值为bookid
GDataXMLNode* attr = [GDataXMLNode attributeWithName:@"id" stringValue:bookId];
//为<book.../>元素添加id属性
[bookEle addAttribute:attr];
//依次创建<title.../>,<author.../>,<remark.../>3个元素
GDataXMLElement* titleEle = [GDataXMLNode elementWithName:@"title" stringValue:bookName];
GDataXMLElement* authorEle = [GDataXMLNode elementWithName:@"author" stringValue:author];
GDataXMLElement* remarkEle = [GDataXMLNode elementWithName:@"remark" stringValue:remark];
//将<title.../>,<author.../>,<remark.../>3个元素添加到bookEle元素中
[bookEle addChild:titleEle];
[bookEle addChild:authorEle];
[bookEle addChild:remarkEle];
//将<book.../>元素添加为XML文档根元素的子元素
[rootEle addChild:bookEle];
//如果data不存在,即XML文档还不存在,则表明需要重新生成GDataXMLDocument对象
if(!data)
{
//以指定的跟元素创建GDataXMLDocument对象
doc = [[GDataXMLDocument alloc]initWithRootElement:rootEle];
}
//将GDataXMLDocument转换为NSfata后输出到指定文件中
[doc.XMLData writeToFile:self.xmlPath atomically:YES];
self.idField.text = nil;
self.nameField.text = nil;
self.authorField.text = nil;
self.remarkField.text = nil;
//创建并显示提示框
[[[UIAlertView alloc]initWithTitle:@"提示" message:@"添加成功" delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil] show];
}else
{
//创建并显示提示框
[[[UIAlertView alloc]initWithTitle:@"提示" message:@"您必须为所有信息都输入有效的值" delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil] show]; }
}

使用GDataXML生成、修改XML文档-陈棚的更多相关文章

  1. Dom4j修改xml文档引入

    前面介绍了如何解析xnl文档的内容,这里对修改xml展开讨论. 一.首先看一下,写出内容到xml文档的主要代码: XMLWriter writer = new XMLWriter(OutputStre ...

  2. Dom4j修改xml文档

    1. 写出内容到xml文档 XMLWriter writer = new XMLWriter(OutputStream, OutputForamt) wirter.write(Document); 2 ...

  3. c# 创建,加载,修改XML文档

    using System.Xml.Linq; static void Main(string[] args) { XDocument xDocument = new XDocument(new XEl ...

  4. python 修改xml文档 ing

    原xml文件 <?xml version="1.0" encoding="utf-8"?> <catalog> <maxid> ...

  5. Java DOM解析器 - 修改XML文档

    这是我们需要修改的输入XML文件: 1 2 3 4 5 6 7 8 9 10 11 12 <?xml version="1.0" encoding="UTF-8&q ...

  6. 解析txt文本,dom4j工具输出为xml文档

    有如下一个ttl.txt文本文档,每一行用空格隔开的三段分别代表主谓宾, 要将它们输出为xml格式文档 工具:dom4j,jar包导入MyEclipse的Java Project工程 代码如下: pa ...

  7. C# XML 文档注释文件格式

    在编写 C# 代码时,只要在注释按照格式加入 XML 文档注释,例如: /// <summary> /// 这里是类的注释. /// </summary> public cla ...

  8. C# 创建XML文档

    有些时候我们需要生成一个xml文档作为数据交换的容器.当然我们用拼接字符串的方法来进行构建xml,但是这种方法虽然简单有效,但是如果xml文档结构过于复杂,拼接字符串会让人眼花缭乱.这时候就需要C#给 ...

  9. 在Sql Server 2005中将主子表关系的XML文档转换成主子表“Join”形式的表

    本文转载:http://www.cnblogs.com/Ricky81317/archive/2010/01/06/1640434.html 最近这段时间在Sql Server 2005下做了很多根据 ...

随机推荐

  1. Oracle导出导入dmp文件(exp.imp命令行)

    1.说明 使用Oracle命令行导出导入dmp文件, 从而在两个数据库之间快速转移数据, 也可以用来作为数据库的备份, 将来可以快速恢复数据. 命令:导出exp.导入imp 步骤: 使用Oracle的 ...

  2. SpringBoot 与 SpringCloud 的版本对应详细信息

    "spring-cloud": { "Finchley.M2": "Spring Boot >=2.0.0.M3 and <2.0.0.M ...

  3. 新装CentOS7用yum安装软件提示 cannot find a valid baseurl for repobase7x86_64

    1.打开网络配置文件:vi /etc/sysconfig/network-scripts/ifcfg-ens33(每个机子都可能不一样,但格式会是"ifcfg-e..."). 2. ...

  4. python中类对象、实例对象、类属性、实例属性、类方法、实例方法、静态方法

    类对象.类属性与实例对象.实例属性的区别 在Python中一切皆是对象,类是一个特殊的对象即类对象,描述类的属性称为类属性.类属性在内存中只有一份,在__init__外部定义. 通过类创建的对象称为实 ...

  5. frp + nginx 配置多人共用的http 内网穿透服务

    来源:简书   https://www.jianshu.com/p/c9d7527d607b 一. 前言 frp 是一个用Go语言开发的,可用于内网穿透的高性能的反向代理应用,支持 tcp, udp ...

  6. Arrays.sort实现原理

    Collections.sort方法底层就是调用的array.sort方法 比较器的方式 TimSort static void sort(Object[] a, int lo, int hi, Ob ...

  7. Jquery通过遍历数组给checkbox赋默认值

    需求:有一个数组:(北京菜,粤菜),checkbox如下: 现在想通过遍历这个数组,使数组里包含的值,在checkbox选中 代码: var flavors = new Array([北京菜 , 粤菜 ...

  8. Python常用功能函数系列总结(五)

    本节目录 常用函数一:向量距离和相似度计算 常用函数二:pagerank 常用函数三:TF-IDF 常用函数四:关键词提取 常用函数一:向量距离和相似度计算 KL距离.JS距离.余弦距离 # -*- ...

  9. Linux上天之路(十三)之系统进程管理

    主要内容 进程介绍 进程管理 进程优先级 1. 进程介绍 Linux系统中的几乎任何行动都会以进程的形式进行.如果你用网络浏览器查看网页,浏览器就作为进程运行.如果键入bash shell的命令行,这 ...

  10. 阿里神器 Seata 实现 TCC模式 解决分布式事务,真香!

    今天这篇文章介绍一下Seata如何实现TCC事务模式,文章目录如下: 什么是TCC模式? TCC(Try Confirm Cancel)方案是一种应用层面侵入业务的两阶段提交.是目前最火的一种柔性事务 ...