使用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下做了很多根据 ...
随机推荐
- 【】(Git)用动图展示10大Git命令
1.说明 git merge.git rebase.git reset.git revert.git fetch.git pull.git reflog-- 你知道这些 git 命令执行的究竟是什么任 ...
- 关于java的Excel导入导出之easypoi
导入easypoi相关jar包,这里的easypoi-base的包也可以不倒入,因为easypoi-web中有依赖easypoi-base会自动导入的 <!-- https://mvnrepos ...
- Tool_BurpSuite安装和简单使用
一.安装 1.检查Java环境 Burp Suite是用Java语言开发的,运行时依赖于JRE,因此需要先配置Java环境.在CMD中输入java -version 出现下图的结果,证明已配置Java ...
- mongodb用户权限管理的CRUD
https://blog.csdn.net/weixin_34332905/article/details/88759759?utm_medium=distribute.pc_relevant.non ...
- 区别对待 .gz 文件 和 .tar.gz 文件
#检测 tar tvf xxx.tar.gz #解压 tar zxvf #检测 gunzip -tv yyy.gz #解压 gunzip yyy.gz
- [Flask] Flask问题集(后端模板渲染项目)
1.redirect和render_template的区别? redirect:重定向,会改变url render_template:模板渲染,用模板来渲染当前页,不会改变url 2.关于 'g' 对 ...
- Python常用功能函数系列总结(七)
本节目录 常用函数一:批量文件重命名 常用函数一:批量文件重命名 # -*- coding: utf-8 -*- """ DateTime : 2021/02/08 10 ...
- css处理工具PostCss
在 Web 应用开发中,CSS 代码的编写是重要的一部分.CSS 规范从最初的 CSS1 到现在的 CSS3,再到 CSS 规范的下一步版本,规范本身一直在不断的发展演化之中.这给开发人员带来了效率上 ...
- 关于 cannot create Parameters: [] 报错问题的解决方法
其实在Sort类中添加无参构造就可以解决 我自己写的是Sort类,其它情况得视你们自己写的类决定 至于为什么也不是很清楚
- “老”的Flexbox和“新”的Flexbox
本文由大漠根据Chris Coyier的<"Old" Flexbox and "New" Flexbox>所译,整个译文带有我们自己的理解与思想,如 ...