終於又能擠出點時間學點 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.