使用GDataXML生成、修改XML文档-陈棚
使用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文档-陈棚的更多相关文章
- Dom4j修改xml文档引入
前面介绍了如何解析xnl文档的内容,这里对修改xml展开讨论. 一.首先看一下,写出内容到xml文档的主要代码: XMLWriter writer = new XMLWriter(OutputStre ...
- Dom4j修改xml文档
1. 写出内容到xml文档 XMLWriter writer = new XMLWriter(OutputStream, OutputForamt) wirter.write(Document); 2 ...
- c# 创建,加载,修改XML文档
using System.Xml.Linq; static void Main(string[] args) { XDocument xDocument = new XDocument(new XEl ...
- python 修改xml文档 ing
原xml文件 <?xml version="1.0" encoding="utf-8"?> <catalog> <maxid> ...
- Java DOM解析器 - 修改XML文档
这是我们需要修改的输入XML文件: 1 2 3 4 5 6 7 8 9 10 11 12 <?xml version="1.0" encoding="UTF-8&q ...
- 解析txt文本,dom4j工具输出为xml文档
有如下一个ttl.txt文本文档,每一行用空格隔开的三段分别代表主谓宾, 要将它们输出为xml格式文档 工具:dom4j,jar包导入MyEclipse的Java Project工程 代码如下: pa ...
- C# XML 文档注释文件格式
在编写 C# 代码时,只要在注释按照格式加入 XML 文档注释,例如: /// <summary> /// 这里是类的注释. /// </summary> public cla ...
- C# 创建XML文档
有些时候我们需要生成一个xml文档作为数据交换的容器.当然我们用拼接字符串的方法来进行构建xml,但是这种方法虽然简单有效,但是如果xml文档结构过于复杂,拼接字符串会让人眼花缭乱.这时候就需要C#给 ...
- 在Sql Server 2005中将主子表关系的XML文档转换成主子表“Join”形式的表
本文转载:http://www.cnblogs.com/Ricky81317/archive/2010/01/06/1640434.html 最近这段时间在Sql Server 2005下做了很多根据 ...
随机推荐
- Selenium_模拟键盘和鼠标操作(9)
模拟键盘键盘和鼠标操作主要使用到selenium的keys包,源码如下 class Keys(object): """ Set of special keys codes ...
- java 关于 重写、覆写、覆盖、重载 的总结【不想再傻傻分不清了】
1.前言 有些东西,名称不同,其实就是一个东西,你说是扯淡不? 2.重写 重写,又叫覆写.覆盖 ,注解@Override,词义为推翻 , 用法特点是继承父类后,重写的父类方法名字.参数.返回值必须相同 ...
- spring cloud --- config 从git 获取文件【 可能是yml或 properties】遇到有相同字段的取值规则
spring boot 1.5.9.RELEASE spring cloud Dalston.SR1 1.前言 昨天做了 spring cloud config 配置中心 获取存在gi ...
- ssh到localhost或127.0.0.1拒绝连接
通过ssh连接到本机报错 ssh: connect to host localhost port 22: Connection refused, 你能用ssh登录其它主机并不代表着本地有ssh服务,要 ...
- Git Book PDF下载
Download Git-Book
- Python常用功能函数系列总结(七)
本节目录 常用函数一:批量文件重命名 常用函数一:批量文件重命名 # -*- coding: utf-8 -*- """ DateTime : 2021/02/08 10 ...
- vue实现PC端分辨率适配
lib-flexible + px2rem Loader lib-flexible 阿里伸缩布局方案 px2rem-loader:px转rem: 依赖 首先需要安装 vue-cli 脚手架,这里我安装 ...
- Android 12(S) 图形显示系统 - 示例应用(二)
1 前言 为了更深刻的理解Android图形系统抽象的概念和BufferQueue的工作机制,这篇文章我们将从Native Level入手,基于Android图形系统API写作一个简单的图形处理小程序 ...
- 【get√】发现一个redis zset的新玩法:用ZINTERSTORE把value都置0
直接上指令: redis-cli -h 192.168.0.5 -p 6379 -a test123 DEL __temp_ahfu1 ZADD __temp_ahfu1 1 0.0.18.185_0 ...
- 【小记录】利用cuvid库做视频解码,运行出现"dlopen "libnvcuvid.so" failed!"
1.查看源码:/Video_Codec_SDK_8.0.14/Samples/common/src/dynlink_nvcuvid.cpp 其中的LOAD_LIBRARY函数的源码如下: 1 #eli ...