一个更加强大易用的XML库 -- NativeXML

王朝delphi·作者佚名  2006-01-09
宽屏版  字体: |||超大  

原来一直使用Delphi自带的TXMLDocument类来进行XML文件的读写,虽然麻烦了一点,但功能上来说还不错。只是有一个地方让我实在不舒服 - 每次创建TXMLDocument类实例的时候必须传入TComponent对象,这就意味着,如果我把对XML文件的读写封装到一个类里面,那么在创建这个自定义类的时候就必须也传入TComponent对象。

我尝试过很多方法,但是都无法避免,最后试着上网找了找,于是就找到了NativeXML这个库。

下载之后马上打开Demo看了看,cool,创建TNativeXML的时候只需要传入xml文件路径就可以,再往下看就让我开始惊喜了。它已经把大多数操作都封装好了,而且还具有把任意对象序列化的能力。

比如,你能把整个Form通过 TsdXmlObjectWriter = class(TPersistent) 类存入一个XML文件,下次再读取。这样使得远程传输对象变得很简单了。

下面就是一个使用NativeXML库的例子:

目标XML结构:

<bookshift>

<book author = "test_author">

<date>2000-01-01</date>

</book>

</bookshift>

delphi 代码:

procedure WriteTest;

var

xml : TNativeXML;

n_bs : TXMLNode;

begin

//建立根节点

xml := TNativeXml.CreateName('bookshift');

xml.EncodingString := 'GB2312';

//输出风格为易读

xml.XmlFormat := xfReadable;

//建立Book节点

n_bs := xml.Root.NodeNew('book');

//写入Book节点的属性

n_bs.WriteAttribuiteString('author','test_author');

//建立Book节点下属date节点并写入值

n_bs.WriteString('date','2000-01-01');

xml.SaveToFile('test.xml');

end;

打开test.xml文件看看吧,和上面的格式一摸一样。

很简单吧,我用这个库重写了原来的XML访问类,大约节省了40%的代码量。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有