文档章节

NativeXml (2):对象建立

涂孟超
 涂孟超
发布于 2014/09/26 15:32
字数 255
阅读 1
收藏 0

相关方法与属性:
TNativeXml.Create(...);
TNativeXml.CreateEx(...);
TNativeXml.CreateName(...);

Obj.New;
Obj.ReadFromString(...);

Obj.VersionString;
Obj.EncodingString;

测试代码:

uses NativeXml; //!

const xmlFile = 'C:\Temp\xml_test_files\basic.xml'; //测试文件

{使用 Create 建立时可指定属主并随属主一同释放}
procedure TForm1.Button1Click(Sender: TObject);
var
  xml: TNativeXml;
begin
  xml := TNativeXml.Create(Self);
//  xml := TNativeXml.Create(nil);
//  System.ReportMemoryLeaksOnShutdown := True;
//  xml.Free;
end;

{CreateEx}
procedure TForm1.Button2Click(Sender: TObject);
var
  xml: TNativeXml;
begin
  xml := TNativeXml.CreateEx(False, //是否建立 Declaration 对象, 如:
 
                             True,  //是否建立跟节点
                             nil    //指定属主
                             );
  ShowMessageFmt('version: %s', [xml.VersionString]);   //显示 XML 版本
  ShowMessageFmt('encoding: %s', [xml.EncodingString]); //显示 XML 编码
  xml.Free;

  xml := TNativeXml.CreateEx(True, true, nil);
  ShowMessageFmt('version: %s', [xml.VersionString]);   //1.0
  ShowMessageFmt('encoding: %s', [xml.EncodingString]); //UTF-8
  xml.Free;
end;

{使用 CreateName 建立可直接指定根节点的名称}
procedure TForm1.Button3Click(Sender: TObject);
var
  xml: TNativeXml;
begin
  xml := TNativeXml.CreateName('MyRoot');
  ShowMessage(xml.Root.Name); //MyRoot
  xml.Free;
end;

{使用 New 方法清空并重新构建}
procedure TForm1.Button4Click(Sender: TObject);
var
  xml: TNativeXml;
begin
  xml := TNativeXml.Create(nil);
  xml.LoadFromFile(xmlFile);
  ShowMessage(xml.WriteToString);
  xml.New;
//  xml.Clear;
  ShowMessage(xml.WriteToString);
  xml.Free;
end;

{使用 ReadFromString 从文本读入}
procedure TForm1.Button5Click(Sender: TObject);
const
  str = '<?xml version="1.0"?><Root><Items><item>1</item><item>2</item></Items></Root>';
var
  xml: TNativeXml;
begin
  xml := TNativeXml.Create(nil);
  xml.ReadFromString(str);
  xml.XmlFormat := xfReadable;
  Memo1.Text := xml.WriteToString;
end;

本文转载自:http://www.cnblogs.com/del/archive/2011/03/24/1993714.html

涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
Delphi开源组件库--QDAC

QDAC 是由 QDAC 开发组为大家提供的一套 Delphi/C++ Builder 跨平台开源组件库,名称取自英文 Quick Data Access Components 的首字母。它支持 Delphi/C++ Builder 2007 以上的版本的开发环境...

swish
2015/11/23
1K
0
matlab图加上箭头和标注实例

本文转自https://blog.csdn.net/miao_9/article/details/53543947 在图上加箭头的函数有annotation(),quiver(), annotation()函数 (1) annotation(annotation_type) % 以指定的对象类型,使......

weixin_41554884
2018/04/11
0
0
ActiviteMQ接收和发送消息基本流程

发送消息的基本步骤: (1)、创建连接使用的工厂类JMS ConnectionFactory (2)、使用管理对象JMS ConnectionFactory建立连接Connection,并启动 (3)、使用连接Connection 建立会话Session (4)...

JackFace
2016/07/07
218
0
JMS(十二):ActiviteMQ接收和发送消息基本流程

详细链接: http://blog.csdn.net/jwdstef/article/details/17380471 图文:ActiviteMQ接收和发送消息基本流程: 发送消息的基本步骤: (1)、创建连接使用的工厂类JMS ConnectionFactory (2)...

牧羊人Berg
2016/03/05
396
0
最全面的常用Delphi第三方控件汇总—报表、图表、界面、数据库等

有网友问我常用Delphi第三方控件及功能。我先大概整理一下,以后会在文章里面碰到时再仔细介绍。 报表图表方面: TeeChart Pro 在delphi 的图形显示方面目前唯一的选择,虽然从delphi 3 就随...

Leamontea
2012/12/03
1K
2

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot + Mybatis + Ehcache 二级缓存实例

二级缓存是多个SqlSession共享的,其作用域是mapper的同一个namespace,不同的sqlSession两次执行相同namespace下的sql语句且向sql中传递参数也相同即最终执行相同的sql语句,第一次执行完毕...

xiaolyuh
30分钟前
4
0
Spring源码学习(二)哎呦,按菜谱做菜与AbstractAutowireCapableBeanFactory.createBean流程差不多

记得跟老婆谈恋爱时,有一天心血来潮给老婆做饭,按照菜谱一步一步的做,结果差点把厨房烧了!!! 这事至今老婆还记得。 入口 上一篇说了,AbstractBeanFactory.getBean的主流程 ,今天来说下...

温安适
32分钟前
39
0
前端UI攻城狮 你们该抛弃jQuery了

你不再需要jQuery! Web工程师太依赖jQuery了,某种意义上说jQuery已经成了JavaScript的同义词。但是我们真的需要他么?或许我们应该反思一下什么时候才真的需要jQuery。 对我个人而言开始使...

前端老手
33分钟前
6
0
六、Java设计模式之工厂方法

工厂方法定义: 定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行 类型:创建型 工厂方法-使用场景: 创建对象需要大量重复的代码 ...

东风破2019
今天
6
0
win服务器管理遇到的一系列问题记录

有些小伙伴在使用iis7远程桌面管理工具的时候总是会遇到一系列的问题,下面就是为大家介绍一下服务器日常管理过程中出现的问题及我的解决办法和心得。希望能帮到大家。   拒绝服务器重新启...

1717197346
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部