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 を直接使えば同じようなことができます。