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[]; {这是"人员"节点}   if node.HasChildNodes and not node.IsTextElement then
    ShowMessage('是支节点'); {是支节点}
end; //判断是否是叶节点
procedure TForm1.Button2Click(Sender: TObject);
var
  node: IXMLNode;
begin
  node := XMLDocument1.DocumentElement.ChildNodes[].ChildNodes[]; {这是"姓名"节点}   if node.IsTextElement then
    ShowMessage('是叶节点'); {是叶节点}
end; //判断是否是文本节点
procedure TForm1.Button3Click(Sender: TObject);
var
  node: IXMLNode;
begin
  node := XMLDocument1.DocumentElement.ChildNodes[].ChildNodes[].ChildNodes[];
  {这是"张三"那个文本节点}   if node.NodeName='#text' then
    ShowMessage('是文本节点'); {是文本节点}
end; //判断是否是空节点
procedure TForm1.Button4Click(Sender: TObject);
var
  node: IXMLNode;
begin
  node := XMLDocument1.DocumentElement.ChildNodes[];
  {这是根节点下的第五个节点: "辅助人员", xml 中设为空}   if not node.HasChildNodes then
    ShowMessage('是空节点'); {是空节点}
end; end.

Delphi 中的 XMLDocument 类详解(10) - 判断节点类型: 支节点、叶节点、文本节点、空节点的更多相关文章

  1. Delphi 中的 XMLDocument 类详解(9) - 关于 HasChildNodes 与 IsTextElement

    unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...

  2. hadoop中典型Writable类详解

    本文地址:http://www.cnblogs.com/archimedes/p/hadoop-writable.html,转载请注明源地址. Hadoop将很多Writable类归入org.apac ...

  3. Php-SPL库中的迭代器类详解(转)

    SPL提供了多个迭代器类,分别提供了迭代访问.过滤数据.缓存结果.控制分页等功能.,因为php总是在不断壮大,我尽可能列出SPL中所有的迭代类.下面其中一些迭代器类是需要php5.4,另外一些如Sea ...

  4. MFC中CString.Format类详解

    在MFC程序中,使用CString来处理字符串是一个很不错的选择.CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串.CString的Format方法给我们进行字符串的 ...

  5. Spring框架spring-web模块中的RestTemplate类详解

    RestTemplate类是spring-web模块中进行HTTP访问的REST客户端核心类.RestTemplate请求使用阻塞式IO,适合低并发的应用场景. 1. RestTemplate类提供了 ...

  6. (14)javaWeb中的HttpServletResponse类详解

    如果希望了解请求和响应的详细内容,可以看我的“HTTP协议”系列文章 响应体的简单概述: a,响应报文结构: b,常见的状态码,返回服务器处理的结果: c,常见的响应头: HttpServletRes ...

  7. Delphi中的线程类 - TThread详解

    Delphi中的线程类 - TThread详解 2011年06月27日 星期一 20:28 Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本 ...

  8. JDK中Unsafe类详解

    Java中Unsafe类详解 在openjdk8下看Unsafe源码 浅析Java中的原子操作 Java并发编程之LockSupport http://hg.openjdk.java.net/jdk7 ...

  9. Java中dimension类详解

    Java中dimension类详解 https://blog.csdn.net/hrw1234567890/article/details/81217788

随机推荐

  1. Swift Struct 结构体

    前言 Swift 语言有两种基本的数据类型,即类(class)和结构体(struct),class 这样的概念大家不会陌生,而 struct 也并不是什么新的概念,在 Objective-C 和 C ...

  2. 构建自己的 Smart Life 私有云(一)-> 破解涂鸦智能插座

    博客搬迁至https://blog.wangjiegulu.com RSS订阅:https://blog.wangjiegulu.com/feed.xml 原文链接:https://blog.wang ...

  3. idea 配置 maven 项目

    maven 项目  用模块引入进来 1.引入  pom.xml 2.如果不是web则要添加web支持 3.配置资源  类  和依赖  and 项目语言环境 5.配置  artifacts 部署   w ...

  4. 此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站。若要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet。

    1.问题描述 mvc从一个路径获取所有的图片信息,ajax方法如下: function getimages(day) { var year = $("#selYear").val( ...

  5. hdoj:2052

    #include <iostream> #include <string> using namespace std; int main() { int n, m; while ...

  6. Flume架构以及应用介绍[转]

    在具体介绍本文内容之前,先给大家看一下Hadoop业务的整体开发流程: 从Hadoop的业务开发流程图中可以看出,在大数据的业务处理过程中,对于数据的采集是十分重要的一步,也是不可避免的一步,从而引出 ...

  7. 第四百一十四节,python常用算法学习

    本节内容 算法定义 时间复杂度 空间复杂度 常用算法实例 1.算法定义 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机 ...

  8. python 搭建一个http服务的小例子

    一.创建Server 1.Dos 命令 python -m BaseHTTPServer [port] 默认端口是8000, 2.Python 脚本启动 #coding:utf-8 ''' Creat ...

  9. 树莓派apache2.4源码包安装

    1.安装apr-1.6.3.tar.gz apr-util-1.6.1.tar.bz2 httpd-2.4.34.tar.gz (源码包下载centos7的就行,树莓派版本官方debian) 2.问题 ...

  10. log4j Tricks (log4j 1.2)

    1. 开启 log4j 框架内部的日志输出到控制台 # 在 log4j.properties 中添加log4j.debug=true # 配置 log4j 框架内部的日志通过 System.out 输 ...