终于又能挤出点时间学点 Delphi 了。
学习 NativeXml 的目的: 1、以后再用到 Xml 就准备用它了。 2、学习其内存处理机制。 3、更多了解 Xml 的相关细节。
安装: 把 general 下的 4 个文件和 nativexml 下的 3 个文件复制在一起,然后通过 Tools > Options > Delphi Options > Library > Library path 指定路径就可以了。 可能作者的本意并非如此,但这样很简单。
另外我把 demo\xml_test_files 下的测试文件复制到了 C:\Temp\ 以方便测试。
测试:
xxxxxxxxxx
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.