TXMLDocumentを使う
Delphi 6 Enterprise / Delphi 7 Professional以上
Delphi 6 Entに付属する TXMLDocument の使用例です。このコンポーネントはDOM の VCL 版で [Internet]
タブにあります (非ビジュアルコンポーネントです)。ただし、中身は MSXML (または IBM のパーサー) で、100%
VCL ではありません (多分)。
設定は以上です。
以下のコードは XML ファイルを読んでその構造を TreeView に表示します。
| ■ XMLDocumentの使用例 |
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ImgList, xmldom, XMLIntf, msxmldom, XMLDoc;
type
TForm1 = class(TForm)
Button1: TButton;
TreeView1: TTreeView;
XMLDocument1: TXMLDocument;
ImageList1: TImageList;
procedure Button1Click(Sender: TObject);
private
{ Private 宣言 }
procedure Build(TreeNode: TTreeNode; XMLNode: IXMLNode);
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
XMLDocument1.Active := True;
Build(nil, XMLDocument1.DocumentElement);
end;
procedure TForm1.Build(TreeNode: TTreeNode; XMLNode: IXMLNode);
var
Node: TTreeNode;
i: integer;
begin
if (XMLNode.NodeType = ntText) then begin
Node := TreeView1.Items.AddChild(TreeNode, XMLNode.NodeValue);
Node.ImageIndex := 0;
Node.SelectedIndex := 0;
end else begin
Node := TreeView1.Items.AddChild(TreeNode, XMLNode.NodeName);
Node.ImageIndex := 1;
Node.SelectedIndex := 1;
end;
for i := 0 to XMLNode.ChildNodes.Count - 1 do begin
Build(Node, XMLNode.ChildNodes.Nodes[i]);
end;
end;
end.
|
Delphi Professional または Delphi Personal でも MSXML を直接使えば同じようなことができます。