程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi 中的 XMLDocument 類詳解(10) - 判斷節點類型: 支節點、

Delphi 中的 XMLDocument 類詳解(10) - 判斷節點類型: 支節點、

編輯:Delphi

unit Unit1; 
 
interface 
 
uses 
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
 Dialogs, xmldom, XMLIntf, msxmldom, XMLDoc, StdCtrls; 
 
type 
 TForm1 = class(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; 
 
 
//什麼是支節點與葉節點 
 
{沒有找到權威的參考, 我的理解是: 
包含其他標簽的節點是支節點; 不不包含其他標簽的就是葉節點; 文本節點不算也節點. 
} 
{譬如根節點下的第一個節點: 
<人員 職務="科長" 備注="正局級">
 
 <姓名>張三</姓名>
 
 <性別>男</性別>
 
 <年齡>34</年齡>
 
</人員> 
 
"人員" 節點是支節點; 
"姓名"、"性別"、"年齡" 節點是葉節點; 
葉節點中的部分是文本節點. 
} 
 
 
//判斷是否是支節點 
procedure TForm1.Button1Click(Sender: TObject); 
var 
 node: IXMLNode; 
begin 
 node := XMLDocument1.DocumentElement.ChildNodes[0]; {這是"人員"節點} 
 
 if 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]; {這是"姓名"節點} 
 
 if node.IsTextElement then 
  ShowMessage('是葉節點'); {是葉節點} 
end; 
 
 
//判斷是否是文本節點 
procedure TForm1.Button3Click(Sender: TObject); 
var 
 node: IXMLNode; 
begin 
 node := XMLDocument1.DocumentElement.ChildNodes[0].ChildNodes[0].ChildNodes[0]; 
 {這是"張三"那個文本節點} 
 
 if node.NodeName='#text' then 
  ShowMessage('是文本節點'); {是文本節點} 
end; 
 
 
//判斷是否是空節點 
procedure TForm1.Button4Click(Sender: TObject); 
var 
 node: IXMLNode; 
begin 
 node := XMLDocument1.DocumentElement.ChildNodes[4]; 
 {這是根節點下的第五個節點: "輔助人員", XML 中設為空} 
 
 if not node.HasChildNodes then 
  ShowMessage('是空節點'); {是空節點} 
end; 
 
end. 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved