终于又能挤出点时间学点 Delphi 了。
学习 NativeXml 的目的:
1、以后再用到 Xml 就准备用它了。
2、学习其内存处理机制。
3、更多了解 Xml 的相关细节。
刚刚下载到最新的 NativeXml328,发现竟是 3 天前刚刚更新的。相关地址:
http://www.simdesign.nl/xml.html
http://www.simdesign.nl/forum/viewforum.php?f=2
NativeXml328
安装:
把 general 下的 4 个文件和 nativexml 下的 3 个文件复制在一起,然后通过 Tools > Options > Delphi Options > Library > Library path 指定路径就可以了。
可能作者的本意并非如此,但这样很简单。
另外我把 demo\xml_test_files 下的测试文件复制到了 C:\Temp\ 以方便测试。
测试:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; Button2: TButton; Button3: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses NativeXml; //! const xmlFile = 'C:\Temp\xml_test_files\basic.xml'; //测试文件 {原样打开} procedure TForm1.FormCreate(Sender: TObject); begin Memo1.Lines.LoadFromFile(xmlFile); end; {使用 NativeXml 打开} procedure TForm1.Button1Click(Sender: TObject); var xml: TNativeXml; begin xml := TNativeXml.Create(nil); xml.LoadFromFile(xmlFile); Memo1.Text := xml.WriteToString; xml.Free; end; {使用缩进} procedure TForm1.Button2Click(Sender: TObject); var xml: TNativeXml; begin xml := TNativeXml.Create(nil); xml.LoadFromFile(xmlFile); xml.XmlFormat := xfReadable; //格式枚举:xfCompact(压缩)、xfReadable(缩进)、xfPreserve(好像暂未处理) Memo1.Text := xml.WriteToString; xml.Free; end; {指定缩进文本} procedure TForm1.Button3Click(Sender: TObject); var xml: TNativeXml; begin xml := TNativeXml.Create(nil); xml.LoadFromFile(xmlFile); xml.IndentString := ' '; //IndentString 属性的默认值是 #9 xml.XmlFormat := xfReadable; Memo1.Text := xml.WriteToString; xml.Free; end; end.