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