delphi笔记之nativeXml 转
delphi笔记之nativeXml
使用 CreateName 建立可直接指定根节点的名称
var
XmlDoc: TnativeXml;
Node:TxmlNode;
Begin
XmlDoc := TNativeXml.CreateName('Data'); //创建根节点的语法
XmlDoc.XmlFormat := xfReadable;
添加节点有以下几种方法:
Node:=xmlDoc.Root.NodeNew(‘BasicDataNo’);
Node.value:=’1’;
XmlDoc.Root.NodeNew(‘name’).value:=’sam’;
xmlDoc.Root.WriteString(‘sex’,’male);
xmlDoc.Root.NodeNew('Address').WriteString('City', '广州');//<Address><City>广州</City></Address>
还有可以创建相应类型的方法:WriteFloat()、WriteDateTime()、WriteHex()、WriteBool()...
Node:=xmlDoc.NodeNew(‘item’);
Node.writeInteger(‘age’,23);
xmlDoc.Root.NodeAdd(node);
XmlDoc.NodeNew('BasicData', [
XmlDoc.NodeNewText('FirstName', 'John'),
XmlDoc.NodeNewText('LastName', 'Doe'),
XmlDoc.NodeNewInt('Age', 26)
])
添加属性:
node := xml.Root.NodeNew('item');
node.AttributeAdd('ID', '1');
node.AttributeAdd('age', '11');
node.Value := '张三';
node := xml.NodeNewTextAttr('item', '张三', [xml.AttrText('ID', '1'), xml.AttrInt('age', 11)]);
xml.Root.NodeAdd(node);
添加注释:
node := xml.NodeNewTextType('注释名称', '注释内容', xeComment);
xml.Root.NodeAdd(node);
添加CDATA内容
node.NodeAdd(xml.NodeNewTextType('DataName', 'XXXXXXXXXXXX', xeCData));
NativeXml 读取
NativeXml打开xml文本
Var
Xml:TnativeXml;
Begin
Xml:=TnativeXml.Create(nil);
Xml.loadformFile(‘xml_file_path’);
End;
读取declaration
declaration: TsdDeclaration;
declaration := xml.RootNodes[0] as TsdDeclaration;
ShowMessageFmt('%s, %s', [declaration.Version, declaration.Encoding]); //1.0, UTF-8
xml.RootNodes[1]代表根节点,与xml.Root相同
xml.Root.Name:根节点名称
xml.Root.NodeCount:根节点子节点的总数
xml.Root.WriteToString读取根节点下的所有内容
xml.Root[0]:第一个子节点
节点信息的读取
node:TxmlNode;
node:=xml.Root[0];
node.name
node.value
node.Attributes[0].Name;
node.Attributes[0].Value;
node.Attributes[0].WriteToString
node.AttributeByName['ID'].Value
node.AttributeValueByName['ID']
node := xml.Root;
ShowMessage(node.ReadString('item')); //张三
ShowMessage(node.FindNode('item').Value); //张三
ShowMessage(node.NodeByName('item').Value); //张三
//node.NodesByName(); 用法同 FindNodes
nodeList := TsdNodeList.Create(False);
node.FindNodes('item', nodeList);
for i := 0 to nodeList.Count - 1 do
begin
ShowMessage(nodeList[i].Value); //张三/李四/王五
end;
nodeList.Free;
//
for i := 0 to node.NodeCount - 1 do
begin
ShowMessage(node[i].Value); //张三/李四/王五
end;
其他操作:
插入、删除
xml.Root.NodeInsert(1, xml.NodeNewText('item', '赵六'));
xml.Root.NodeDelete(xml.Root.NodeCount - 1);
xml.Root.NodeRemove(xml.Root[0]);
交换
xml.Root.NodeExchange(0, 1);
提取:
node := xml.Root.NodeExtract(xml.Root[1]);
搜索与创建
node := xml.Root.NodeFindOrCreate('item');
Clear操作
node := xml.Root[0];
node.Clear; <item/> //清除节点内容
xml.Root.DeleteEmptyNodes; //清除空节点
xml.Root.Clear; <list/> //清除Root下的内容
xml.Clear; 将xml内容清除
delphi笔记之nativeXml 转的更多相关文章
- Delphi笔记(GL_Scene安装及简单使用)
前一段时间,需要弄一个四轴的监控平台,看了匿名的上位机后,十分感兴趣.于是我也想自己也弄一个上位机来玩玩,在将串口通讯调好了以后,就开始好奇那个3D模型是怎么弄的.在网上面查找了很多资料,由于我用的是 ...
- Delphi笔记(GL_Scene四轴飞行器模型)
有了前的一篇做铺垫,已经简单的说了GL_Scene的下载安装和一个简单的实例制作.现在就要开始制作一个3D的模型了,具体的步骤就不再这里多说了,直接上图和代码吧! [第一版]先看一下最开始的版本吧,比 ...
- Delphi笔记-自定义提示窗口
unit pbHint; interface uses Windows, Controls, Forms, Graphics; type TPBHint=class(THintWindow) //要自 ...
- 转:学习笔记: Delphi之线程类TThread
学习笔记: Delphi之线程类TThread - 5207 - 博客园http://www.cnblogs.com/5207/p/4426074.html 新的公司接手的第一份工作就是一个多线程计算 ...
- 转:学习笔记:delphi多线程学识
学习笔记:delphi多线程知识 最近一直在温习旧的知识,刚好学习了一下Java的线程安全方面的知识,今天想起之前一直做的Delphi开发,所以还是有必要温习一下,看看这些不同的编程语言有什么不同之处 ...
- Delphi基础语法的学习笔记和注意事项总结
以下是我在自学Delphi的时候,对一些注意点的简单总结,并没有什么系统性可言,只是一个学习时顺手记下的笔记,主要为了当时加深对知识的印象,并没有希望能在以后的复习和使用Delphi中有什么多大的参考 ...
- Delphi使用NativeXml访问XML文件
Delphi使用NativeXml访问XML文件 1.创建XML文件var Doc: TNativeXml;//声明上下文对象var filepath:string;//文件路径DOC:=TNativ ...
- Delphi NativeXml用法攻略
NativeXml用法攻略 NativeXml可以在官网上下载,下载后将文件夹放在指定地方,打开DELPHI在其环境变量中引用NativeXml路径,然后在程序中引用NativeXml单元,我们就可以 ...
- Delphi NativeXml用法攻略 转
NativeXml可以在官网上下载,下载后将文件夹放在指定地方,打开DELPHI在其环境变量中引用NativeXml路径,然后在程序中引用NativeXml单元,我们就可以使用NativeXml了. ...
随机推荐
- java String对象的创建(jvm).
本人目前也开始学习虚拟机,在java中,有很多种类型的虚拟机,其中就以sum公司(当然现在已经是oracle了)的虚拟机为例,介绍可能在面试的时候用到的,同时对自己了解String有很大帮助,这里仅仅 ...
- C# 面向对象编程的继承性-多继承
多继承 如果要使用多继承,需要使用接口,因为C#中的类只支持单继承,而接口支持多继承,实现多继承时,继承的多个接口中间用逗号(,)隔开. 说明: 实现多继承时,继承的可以是多个接口,也可以是一个类及多 ...
- left join 和 left outer join 有什么区别?
left join 是left outer join的简写,left join默认是outer属性的.outer join则会返回每个满足第一个(顶端)输入与第二个(底端)输入的联接的行.它还返回任何 ...
- MySQL命令行下查看运行状态
查看MySQL的运行状态用命令行的show语句show status是查看MySQL运行情况,和上面那种通过pma查看到的信息基本类似. show variables是查看MySQL的配置参数,还可以 ...
- xcode7 icon图标设置
- [转]Delphi中,让程序只运行一次的方法
program onlyRunOne; uses Forms,Windows,SysUtils, Dialogs, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} v ...
- mysql,left join on
转自http://www.oschina.net/question/89964_65912 觉得很有帮助,用来学习. 即使你认为自己已对 MySQL 的 LEFT JOIN 理解深刻,但我敢打赌,这篇 ...
- js获取url中的参数对象、js生成带参数的url
// 获取url中的参数,并返回一个对象 $.getRequestData = function() { var url = location.search; //获取url中"?" ...
- Tomcat环境变量的配置
Tomcat web服务器 支持全部JSP以及Servlet规范 主要作用 是提供了一个可以让Jsp和Servlet运行的平台 tomcat环境变量设置 CATALINA_HOME : D:\bran ...
- shell脚本中的标准输出重定向使用涵义
0表示标准输入 1表示标准输出 2表示标准错误输出 > 默认为标准输出重定向,与 1> 相同 2>&1 意思是把 标准错误输出 重定向到 标准输出. &>fil ...