天天看點

Delphi 中的 XMLDocument 類詳解(13) - 關于 XML 屬性

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, xmldom, XMLIntf, msxmldom, XMLDoc, StdCtrls;

type

TForm1 = class(TForm)

XMLDocument1: TXMLDocument;

Memo1: TMemo;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

//打開

procedure TForm1.FormCreate(Sender: TObject);

begin

XMLDocument1.LoadFromFile('c:\temp\test.xml');

{必須用萬一提供的 xml 測試檔案, 才能有相同的傳回值}

//XMLDocument1 對象的 XML 屬性

procedure TForm1.Button1Click(Sender: TObject);

{前面我們經常用這句話, 因為這裡的 Lines 與 XML 同屬于 TStrings}

Memo1.Lines := XMLDocument1.XML;

{如果不怕麻煩, 這樣寫也可以:}

Memo1.Lines.Text := XMLDocument1.XML.Text;

{如果知道了這一點, 那 XML 屬性的功能可就多了, 并且這裡的 XML 屬性是可寫的}

{不過這裡要談的是節點的 XML 屬性}

//根節點的 XML 屬性

procedure TForm1.Button2Click(Sender: TObject);

node: IXMLNode;

{先看根節點: XMLDocument1.DocumentElement}

node := XMLDocument1.DocumentElement;

//Memo1.Lines := node.XML; {這一句會出錯}

{因為節點的 XML 屬性是 WideString 類型的, 應該這樣:}

Memo1.Lines.Text := node.XML; {将會讀出根節點與根節點包含的所有内容}

{還有一個更大的差別: 節點的 XML 是隻讀的!}

//子節點的 XML 屬性

procedure TForm1.Button3Click(Sender: TObject);

node := node.ChildNodes[0];

Memo1.Lines.Text := node.XML; {會顯示一個子節點的全部}

//屬性的 XML 屬性

procedure TForm1.Button4Click(Sender: TObject);

node := node.AttributeNodes[0]; {屬性也是 IXMLNode 類型的}

ShowMessage(node.NodeName); {備注}

ShowMessage(node.NodeValue); {測試}

{用 XML 屬性一次把他們都讀出來:}

ShowMessage(node.XML); {備注="測試"}

//葉節點的 XML 屬性

procedure TForm1.Button5Click(Sender: TObject);

node := node.ChildNodes[0]; {這就是葉節點了}

ShowMessage(node.XML); {張三}

{這時的 XML 屬性和 Text 屬性一樣了}

ShowMessage(node.Text); {張三}

end.

<a></a>

本文轉自黃聰部落格園部落格,原文連結:http://www.cnblogs.com/huangcong/archive/2010/08/27/1809947.html,如需轉載請自行聯系原作者