Delphi操作XML文件(3)

Posted on 2009-06-10 08:40  一碗白开水  阅读(1471)  评论(1)    收藏  举报

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, xmldom, XMLIntf, msxmldom, XMLDoc, ShellAPI;

type
  TForm1 = class(TForm)
    btn1: TButton;
    btn2: TButton;
    btn3: TButton;
    mmo1: TMemo;
    btn4: TButton;
    xmldcmnt1: TXMLDocument;
    btn5: TButton;
    mmo2: TMemo;
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
    procedure btn3Click(Sender: TObject);
    procedure btn4Click(Sender: TObject);
    procedure btn5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//  载入方法1:LoadFromFile

procedure TForm1.btn1Click(Sender: TObject);
begin
  //  将XNMl文件载入内存中,xmldcmnt1为内存中对象
  xmldcmnt1.LoadFromFile('E:\xml\test.xml');
  //  XML内容显示在mmo1中(两者都可)
  mmo1.Lines := xmldcmnt1.XML;
  mmo2.Lines.Text := xmldcmnt1.XML.Text;
  //  错误的写法
  //  mmo1.Lines.Text := xmldcmnt1.XML;
  //  mmo1.Lines := xmldcmnt1.XML.Text;
  //  mmo1.Lines返回的是一个TStrings类型,而xmldcmnt1.XML.Text返回String类型
end;

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

procedure TForm1.btn2Click(Sender: TObject);
begin
  //  FileName为xmldcmnt1属性
  xmldcmnt1.FileName := 'E:\xml\test.xml';
  //  激活
  xmldcmnt1.Active := True;
  //  同上(查看)
  mmo1.Lines := xmldcmnt1.XML;

end;

//  载入方法3:LoadFromStream

procedure TForm1.btn3Click(Sender: TObject);
var
  ms: TMemoryStream;
begin
  ms := TMemoryStream.Create;
  ms.LoadFromFile('E:\xml\test.xml');
  xmldcmnt1.LoadFromStream(ms);
  ms.Free;
  mmo1.Lines := xmldcmnt1.XML;
end;

//  可以用LoadFromFile或指定FileName的方法访问网上的XML
//  通过LoadFromStream方法加载网络上XMl会提示无法打开XXXXXX标题,属性等错误

procedure TForm1.btn4Click(Sender: TObject);
begin
  xmldcmnt1.LoadFromFile('http://www.google.com/ig/skins/jr.xml');
  mmo1.Lines := xmldcmnt1.XML;
end;

//  用浏览器查看XML,需要一个API函数:ShellAPI.ShellExecute,所以先uses ShellAPI

procedure TForm1.btn5Click(Sender: TObject);
begin
  ShellExecute(Handle, 'open', 'E:\xml\test.xml', nil, nil, SW_NORMAL);
end;

end.

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3