文档章节

NativeXml (5):事件

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 197
阅读 9
收藏 0
点赞 0
评论 0

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, NativeXml{!};

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    procedure XmlEvent(Sender: TObject; ANode: TXmlNode); //TsdXmlNodeEvent 事件
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

const
  xmlFile = 'C:\Temp\xml_test_files\CDATA_section.xml'; //测试文件

{测试 OnNodeNew 事件:开始载入节点时发生}
procedure TForm1.Button1Click(Sender: TObject);
var
  xml: TNativeXml;
begin
  Memo1.Clear;
  xml := TNativeXml.Create(nil);
  xml.OnNodeNew := XmlEvent;
  xml.LoadFromFile(xmlFile);
  xml.Free;
end;

{测试 OnNodeLoaded 事件:节点载入完成时发生}
procedure TForm1.Button2Click(Sender: TObject);
var
  xml: TNativeXml;
begin
  Memo1.Clear;
  xml := TNativeXml.Create(nil);
  xml.OnNodeLoaded := XmlEvent;
  xml.LoadFromFile(xmlFile);
  xml.Free;
end;

{将被调用的事件, OnNodeNew 和 OnNodeLoaded 事件的参数格式是一样的}
procedure TForm1.XmlEvent(Sender: TObject; ANode: TXmlNode);
var
  depth: string;
begin
  if ANode.ElementType = xeElement then         //xeElement 是 TsdElementType 枚举的类型之一
  begin
    depth := StringOfChar(#9, ANode.TreeDepth); //TreeDepth 是节点深度
    Memo1.Lines.Add(depth + ANode.Name);
  end;
end;

end.

本文转载自:http://www.cnblogs.com/del/archive/2011/03/24/1994102.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
最全面的常用Delphi第三方控件汇总—报表、图表、界面、数据库等

有网友问我常用Delphi第三方控件及功能。我先大概整理一下,以后会在文章里面碰到时再仔细介绍。 报表图表方面: TeeChart Pro 在delphi 的图形显示方面目前唯一的选择,虽然从delphi 3 就随...

Leamontea ⋅ 2012/12/03 ⋅ 2

Delphi开源组件库--QDAC

QDAC 是由 QDAC 开发组为大家提供的一套 Delphi/C++ Builder 跨平台开源组件库,名称取自英文 Quick Data Access Components 的首字母。它支持 Delphi/C++ Builder 2007 以上的版本的开发环境...

swish ⋅ 2015/11/23 ⋅ 0

事件分发机制

介绍 (1)在使用时,首先创建一个事件监听器,事件监听器包含以下几种: 触摸事件(EventListenerTouch) 键盘响应事件(EventListenerKeyboard) 加速记录事件(EventListenerAcceleration...

_子墨 ⋅ 2014/08/13 ⋅ 0

通过案例学调优之--模拟buffer busy waits事件

buffer busy waits等待事件 Solutions: 案例分析: 1、建立测试表 2、session 1做事务处理 3、session 2做事务处理 4、查看会话等待事件 如果事务在运行过程中可以访v$sessionwait,如果事务...

余二五 ⋅ 2017/11/15 ⋅ 0

Kendo UI开发教程:UI Widgets概述

Kendo UI 是基于jQuery 库开发的,Kendo UI widgets是以jQuery 插件形式提供的。这些插件的名称基本上都是以kendo作为前缀。比如 Kendo的autocomplete UI 组件名称为 kendoAutoComplete ,Ken...

Miss_Hello_World ⋅ 2016/10/10 ⋅ 0

第五篇:事件驱动的数据管理

本文出自Event-Driven Data Management for Microservices,作者 Chris Richardson, 写于2015年5月19日 本文是构建微服务应用系列文章的第五篇。 第一篇文章:介绍微服务架构并讨论了微服务...

lmy86263 ⋅ 2017/07/16 ⋅ 0

Windows Hook

啥是windows的钩子?钩子故名思议就是在嵌入到正常执行程序的功能。对于windows来说,每个系统和应用程序之间的交互是使用消息机制来进行。比如点击应用程序上面的某个按钮,就是发送了事件给...

王二狗子11 ⋅ 01/07 ⋅ 0

HTML5事件属性

HTML5元素可拥有事件属性,这些属性在浏览器中触发行为,比如当用户单击一个HTML5元素时启动一段JavaScript.下面列出的事件属性,可以把它们插入HTML标签来定义事件行为。 HTML5中的新事件属性:...

凉亭-月下殇 ⋅ 2016/11/07 ⋅ 0

前端统计框架--ALog

ALog 是前端统计框架。 1. 概述 我们会使用或开发各种不同的统计模块对产品的使用情况进行收集,以便衡量产品的健康状况和对产品发展方向进行决策 随着前端交互越来越丰富,统计要分析的维度...

叶秀兰 ⋅ 2014/07/28 ⋅ 1

Mobile First! Wijmo 5 之 架构

CSDN移动开发频道率先报道的《Mobile First!jQuery UI组件集Wijmo五年最大更新》引起开发者极大关注。 本文就开发者关心的话题之一架构,展开叙述。 Wijmo 5是一组JavaScript控件,但是不要...

葡萄城控件技术团队 ⋅ 2014/10/22 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

发送短信如何限制1小时内最多发送11条短信

发送短信如何限制1小时内最多发送11条短信 场景: 发送短信属于付费业务,有时为了防止短信攻击,需要限制发送短信的频率,例如在1个小时之内最多发送11条短信. 如何实现呢? 思路有两个 截至到当...

黄威 ⋅ 昨天 ⋅ 0

mysql5.7系列修改root默认密码

操作系统为centos7 64 1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2、重启 mysqld 服务:systemctl restart mysql...

sskill ⋅ 昨天 ⋅ 0

Intellij IDEA神器常用技巧六-Debug详解

在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦。下面不要在意,这个快捷键具体是啥,因为,这个keymap是可以自己配置的...

Mkeeper ⋅ 昨天 ⋅ 0

zip压缩工具、tar打包、打包并压缩

zip 支持压缩目录 1.在/tmp/目录下创建目录(study_zip)及文件 root@yolks1 study_zip]# !treetree 11└── 2 └── 3 └── test_zip.txt2 directories, 1 file 2.yum...

蛋黄Yolks ⋅ 昨天 ⋅ 0

聊聊HystrixThreadPool

序 本文主要研究一下HystrixThreadPool HystrixThreadPool hystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/HystrixThreadPool.java /** * ThreadPool used to executed {@link Hys......

go4it ⋅ 昨天 ⋅ 0

容器之上传镜像到Docker hub

Docker hub在国内可以访问,首先要创建一个账号,这个后面会用到,我是用126邮箱注册的。 1. docker login List-1 Username不能使用你注册的邮箱,要用使用注册时用的username;要输入密码 ...

汉斯-冯-拉特 ⋅ 昨天 ⋅ 0

SpringBoot简单使用ehcache

1,SpringBoot版本 2.0.3.RELEASE ①,pom.xml <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.3.RELE......

暗中观察 ⋅ 昨天 ⋅ 0

Spring源码解析(八)——实例创建(下)

前言 来到实例创建的最后一节,前面已经将一个实例通过不同方式(工厂方法、构造器注入、默认构造器)给创建出来了,下面我们要对创建出来的实例进行一些“加工”处理。 源码解读 回顾下之前...

MarvelCode ⋅ 昨天 ⋅ 0

nodejs __proto__跟prototype

前言 nodejs中完全没有class的这个概念,这点跟PHP,JAVA等面向对象的语言很不一样,没有class跟object的区分,那么nodejs是怎么样实现继承的呢? 对象 对象是由属性跟方法组成的一个东西,就...

Ai5tbb ⋅ 昨天 ⋅ 0

Ubuntu16.04 PHP7.0 不能用MYSQLi方式连接MySQL5.7数据库

Q: Ubuntu16.04 PHP7.0 不能用MYSQLi方式连接MySQL5.7数据库 A: 执行以下2条命令解决: apt-get install php-mysql service apache2 restart php -m 执行后会多以下4个模块: mysqli mysqlnd...

SamXIAO ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部