专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »PHP教程 » 点击这里:Delphi 中的 XMLDocument 类详解(10) - 判断节点类型: 支节点、叶节点、文本节点、空节点 »正文

点击这里:Delphi 中的 XMLDocument 类详解(10) - 判断节点类型: 支节点、叶节点、文本节点、空节点

来源: 发布时间:星期一, 2009年11月30日 浏览:0次 评论:0
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; 
 
 
//什么是支节点和叶节点 
 
{没有找到权威参考, 我理解是: 
包含其他标签节点是支节点; 不不包含其他标签就是叶节点; 文本节点不算也节点. 
} 
{譬如根节点下个节点: 
<人员 职务="科长" 备注="正局级">
 
 <姓名>张 3</姓名>
 
 <性别>男</性别>
 
 <年龄>34</年龄>
 
</人员> 
 
"人员" 节点是支节点; 
"姓名"、"性别"、"年龄" 节点是叶节点; 
叶节点中部分是文本节点. 
} 
 
 
//判断是否是支节点 
procedure TForm1.Button1Click(Sender: TObject); 
var 
 node: IXMLNode; 
begin 
 node := XMLDocument1.DocumentElement.ChildNodes[0]; {这是"人员"节点} 
 
  node.HasChildNodes and not node.IsTextElement then 
  ShowMessage('是支节点'); {是支节点} 
end; 
 
 
//判断是否是叶节点 
procedure TForm1.Button2Click(Sender: TObject); 
var 
 node: IXMLNode; 
begin 
 node := XMLDocument1.DocumentElement.ChildNodes[0].ChildNodes[0]; {这是"姓名"节点} 
 
  node.IsTextElement then 
  ShowMessage('是叶节点'); {是叶节点} 
end; 
 
 
//判断是否是文本节点 
procedure TForm1.Button3Click(Sender: TObject); 
var 
 node: IXMLNode; 
begin 
 node := XMLDocument1.DocumentElement.ChildNodes[0].ChildNodes[0].ChildNodes[0]; 
 {这是"张 3"那个文本节点} 
 
  node.NodeName='#text' then 
  ShowMessage('是文本节点'); {是文本节点} 
end; 
 
 
//判断是否是空节点 
procedure TForm1.Button4Click(Sender: TObject); 
var 
 node: IXMLNode; 
begin 
 node := XMLDocument1.DocumentElement.ChildNodes[4]; 
 {这是根节点下第 5个节点: "辅助人员", xml 中设为空} 
 
  not node.HasChildNodes then 
  ShowMessage('是空节点'); {是空节点} 
end; 
 
end. 


0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: