黄聪:Delphi 中的 XMLDocument 类详解,3 - 读取 xml 文件

先虚拟一个测试文件: test.xml; 放在 c:\temp\ 下备用.

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

<?xml version="1.0" encoding="gb2312"?>

<科室名单 备注="测试">

<人员 职务="科长" 备注="正局级">

<姓名>张三</姓名>

<性别>男</性别>

<年龄>34</年龄>

</人员>

<人员 职务="付科长">

<姓名>李四</姓名>

<性别>女</性别>

<年龄>43</年龄>

</人员>

<人员>

<姓名>王五</姓名>

<性别>女</性别>

<年龄>25</年龄>

</人员>

<人员>

<姓名>孙六</姓名>

<性别>男</性别>

<年龄>52</年龄>

</人员>

<辅助人员>

</辅助人员>

</科室名单>

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

unit Unit1;

interface

uses

Classes, Controls, Forms, StdCtrls, XMLDoc, xmldom, XMLIntf, msxmldom;

type

TForm1 = class(TForm)

XMLDocument1: TXMLDocument;

Memo1: TMemo;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

//载入方法1: LoadFromFile

procedure TForm1.Button1Click(Sender: TObject);

begin

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

Memo1.Lines := XMLDocument1.XML; {查看}

end;

//载入方法2: 指定 FileName, 然后激活

procedure TForm1.Button2Click(Sender: TObject);

begin

XMLDocument1.FileName := 'c:\temp\test.xml';

XMLDocument1.Active := True; {激活}

Memo1.Lines := XMLDocument1.XML; {查看}

end;

//载入方法3: 指定 LoadFromStream

procedure TForm1.Button3Click(Sender: TObject);

var

ms: TMemoryStream;

begin

ms := TMemoryStream.Create;

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

XMLDocument1.LoadFromStream(ms);

ms.Free;

Memo1.Lines := XMLDocument1.XML; {查看}

end;

//可以用 LoadFromFile 或指定 FileName 的方法, 访问网上的 xml

procedure TForm1.Button4Click(Sender: TObject);

begin

XMLDocument1.LoadFromFile('http://www.google.com/ig/skins/jr.xml');

Memo1.Lines := XMLDocument1.XML; {查看}

end;

end.

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

如果需要用浏览器查看 xml, 需要一个 api 函数: ShellAPI.ShellExecute, 所以先 uses ShellAPI;
然后: ShellExecute(Handle, 'open', 'c:\temp\test.xml', nil, nil, SW_NORMAL);

出处:http://www.cnblogs.com/del/archive/2008/01/03/1024269.html