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

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

张三姓名>
    男性别>
    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);