使用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. gRPC创建Java RPC服务

    1.说明 本文介绍使用gRPC创建Java版本的RPC服务, 包括通过.proto文件生成Java代码的方法, 以及服务端和客户端代码使用示例. 2.创建生成代码工程 创建Maven工程,grpc-c ...

  2. MongoDB应用场景及选型

    1. MongoDB数据库定位 * OLTP数据库 * 原则上Oracle和MySQL能做得事情,MongoDB都能做(包括ACID事务) * 优点:横向扩展能力,数据量或并发量增加时候可以自动扩展 ...

  3. centos6.5-rsync+inotify

    一.目的 通过监控192.168.3.10的目录,实现实时同步. 实验环境 centos1       192.168.3.10 centos2       192.168.3.11 二.配置 cen ...

  4. notepad++加到右键

    win10系统左下角点击"开始"->运行->regedit,打开注册表编辑器 在HKEY_CLAsssEs_RooT→ * → shell 下,在shell下,新建项命 ...

  5. [网络编程] 自己构建一个cgi.FieldStorage()的对象

    问题描述: 通常cgi.FieldStorage()返回一个类似于Python字典的对象. 在cgi框架中必须通过浏览器发送表单过来才能接受消息 那么我该怎么进行本地调试呢? 或者说在没有搭建好一整套 ...

  6. 利用ajaxfileupload插件异步上传文件

    html代码: <input type="file" id="imgFile" name="imgFile" /> js代码: ...

  7. linux光标命令快捷键(常用)

    Ctrl+a 移动到首行 Ctrl+e 移动到尾行 Ctrl+u 将当前光标后面的内容全部删除 (剪辑) ctrl+k 将当前光标前面的内容全部删除 (剪辑) Ctrl+→(左右同理) 移动到下个空格 ...

  8. C#检测外部exe程序弹窗错误,并重启

    private void button2_Click(object sender, EventArgs e) { string mainTitle = System.Configuration.Con ...

  9. 将待授权的数据库的dbowner指派给该用户

    USE 数据库goEXEC dbo.sp_changedbowner N'账号'

  10. 前端3D引擎-Cesium自定义动态材质

    本文代码基于Vue-cli4和使用WebGL的地图引擎Cesium,主要内容为三维场景下不同对象的动态材质构建. 参考了很多文章,链接附在文末. 为不同的几何对象添加动态材质 不知道这一小节的名称概况 ...