delphi操作xml文档

本文介绍了一种使用Delphi实现XML文档加载的方法,包括从文件直接加载、通过设置文件名并激活对象、从内存流中加载等多种方式,并展示了如何通过简单的按钮点击事件来实现这些加载操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先虚拟一个测试文件: 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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值