点击这里:Delphi 中的 XMLDocument 类详解(5) - 获取元素内容

unit Unit1; 
 
erface 
 
uses 
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
 Dialogs, xmldom, XMLIntf, msxmldom, XMLDoc, StdCtrls; 
 
type 
 TForm1 = (TForm) 
  XMLDocument1: TXMLDocument; 
  Button1: TButton; 
  Button2: TButton; 
  Button3: TButton; 
  Button4: TButton; 
  procedure FormCreate(Sender: TObject); 
  procedure Button1Click(Sender: TObject); 
  procedure Button2Click(Sender: TObject); 
  procedure Button3Click(Sender: TObject); 
  procedure Button4Click(Sender: TObject); 
 private 
  { Private declarations } 
 public 
  { Public declarations } 
 end; 
 
var 
 Form1: TForm1; 
 
implementation 
 
{$R *.dfm} 
 
//打开 
procedure TForm1.FormCreate(Sender: TObject); 
begin 
 XMLDocument1.LoadFromFile('c:\temp\test.xml'); 
 {必须用万提供 xml 测试文件, 才能有相同返回值} 
end; 
 
 
//访问第个人信息 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
 ShowMessage(XMLDocument1.DocumentElement.ChildNodes[0].ChildNodes['姓名'].Text); {张 3} 
 ShowMessage(XMLDocument1.DocumentElement.ChildNodes[0].ChildNodes['性别'].Text); {男} 
 ShowMessage(XMLDocument1.DocumentElement.ChildNodes[0].ChildNodes['年龄'].Text); {34} 
 {可以通过位置访问子节点, 如: ChildNodes[0] 表示子节点列表中个元素} 
 {可以通过子节点名访问子节点, 如: ChildNodes['姓名']} 
 {但在节点名情况下, 只能通过位置访问} 
 {任何情况下都可以通过位置访问, 譬如:} 
 ShowMessage(XMLDocument1.DocumentElement.ChildNodes[0].ChildNodes[0].Text); {张 3} 
end; 
 
 
//访问第 2个人信息 
procedure TForm1.Button2Click(Sender: TObject); 
var 
 nodeList: IXMLNodeList; 
 node: IXMLNode; 
begin 
 nodeList := XMLDocument1.DocumentElement.ChildNodes; 
 node := nodeList[1]; 
 
 ShowMessage(node.ChildNodes['姓名'].Text); {李 4} 
 ShowMessage(node.ChildNodes['性别'].Text); {女} 
 ShowMessage(node.ChildNodes['年龄'].Text); {43} 
end; 
 
 
//获取所有成员姓名 
procedure TForm1.Button3Click(Sender: TObject); 
var 
 nodeList: IXMLNodeList; 
 node: IXMLNode; 
 num,i: Integer; 
begin 
 nodeList := XMLDocument1.DocumentElement.ChildNodes; 
 num := nodeList.Count; 
 
 for i := 0 to num - 1 do 
 begin 
  node := nodeList[i]; 
  ShowMessage(node.ChildNodes['姓名'].Text); {会分别显示: 张 3 李 4 王 5 孙 6} 
 end; 
end; 
 
 
//获取所有成员年龄 
procedure TForm1.Button4Click(Sender: TObject); 
var 
 nodeList: IXMLNodeList; 
 node: IXMLNode; 
 num,i: Integer; 
begin 
 nodeList := XMLDocument1.DocumentElement.ChildNodes; 
 num := nodeList.Count; 
 
 for i := 0 to num - 1 do 
 begin 
  node := nodeList[i]; 
  ShowMessage(node.ChildValues['年龄']); {会分别显示: 34 43 25 52} 
 end; 
end; 
 
end. 


Tags:  .netxmldocument 点击这里

延伸阅读

最新评论

发表评论