文档章节

Delphi 中的 XMLDocument 类详解(5) - 获取元素内容

涂孟超
 涂孟超
发布于 2014/09/26 15:38
字数 406
阅读 10
收藏 0
点赞 0
评论 0
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;


//访问第一个人的信息
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(XMLDocument1.DocumentElement.ChildNodes[0].ChildNodes['姓名'].Text); {张三}
  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); {张三}
end;


//访问第二个人的信息
procedure TForm1.Button2Click(Sender: TObject);
var
  nodeList: IXMLNodeList;
  node: IXMLNode;
begin
  nodeList := XMLDocument1.DocumentElement.ChildNodes;
  node := nodeList[1];

  ShowMessage(node.ChildNodes['姓名'].Text); {李四}
  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); {会分别显示: 张三 李四 王五 孙六}
  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.

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/01/03/1024489.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
Cocos数据篇[3.4](3) ——XML数据操作

【唠叨】 XML 即 可扩展标记语言,在游戏开发中,常用于保存游戏数据信息,如最高分、游戏等级等信息,和描述一些资源等。 加载动画的plist文件、瓦片地图编辑器到处的地图格式tmx文件,实际...

shahdza
2015/02/17
0
0
在C#.net中如何操作XML

在C#.net中如何操作XML 需要添加的命名空间: using System.Xml; 定义几个公共对象: XmlDocument xmldoc ; XmlNode xmlnode ; XmlElement xmlelem ; 1,创建到服务器同名目录下的xml文件: ...

晨曦之光
2012/03/09
44
0
XmlNode与XmlElement的区别总结

今天在做ASP.NET操作XML文档的过程中,发现了两个类:XmlNode和XmlElement。这两个类的功能极其类似(因为我们一般都是在对Element节点进行操作)。上网搜罗了半天,千篇一律的答案。永远说不...

长平狐
2013/03/28
502
0
.NET开发不可不知、不可不用的辅助类(一)

1. 用于获取或设置Web.config/*.exe.config中节点数据的辅助类 /// /// 用于获取或设置Web.config/*.exe.config中节点数据的辅助类 /// public sealed class AppConfig { private string fil...

walb呀
2017/12/04
0
0
写的一个XML操作类,包括读取/插入/修改/删除。

写的一个XML操作类,包括读取/插入/修改/删除。 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using......

潇风
2012/07/24
0
0
linq to xml操作XML

LINQ to XML提供了更方便的读写xml方式。前几篇文章的评论中总有朋友提,你为啥不用linq to xml?现在到时候了,linq to xml出场了。 .Net中的System.Xml.Linq命名空间提供了linq to xml的支...

长平狐
2012/06/08
155
0
使用XmlReader读Xml

XmlDocument和XElement在读取Xml时要将整个Xml文档放到内存中去操作,这样做操作简单,但是很费内存和IO(可能是磁盘IO或者网络IO);而在有些场景下我们必须考虑尽可能节省内存和IO的开销,...

长平狐
2012/06/08
120
0
C++ XML 解析器:tinyxml

[tinyxml2]: http://www.grinninglizard.com/tinyxml2/index.html C++ XML 解析器:[tinyxml][tinyxml2] 1) [TinyXML-2][tinyxml2] 一个简单,轻量,高效的C++ XML 解析器,能够很容易得整合......

加壹
2014/04/24
0
0
UI_16 XML、JSON数据结构解析

从事先规定好的格式中提取数据,即为解析。iOS开发常见的解析有:XML解析、JSON解析 一、XML解析 XML:Extensible Markup language(可扩展标记语⾔),主流数 据格式之⼀,可以⽤来存储和传...

黑伞将军
2015/09/05
189
0
Java解析XML的四种方法详解

XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML。本文将详细介绍用Java解析XML的四种方法在做一般的XML数据交换过程中,我更乐意传递XML字符串,而不是格式化...

quickhelper
05/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

python以太坊类库web3.py概览

python通过web3.py库与以太坊交互共同入口是web3对象。web3对象提供API接口,python开发应用与以太坊进行交互如钱包创建、支付、转账等连接JSON-RPC服务器进行。 Providers提供者 Providers使...

智能合约
4分钟前
0
0
【Android学习笔记】设置App启动页

先将启动页放到项目资源中,图片一般是1080*1920的jpg。 新建一个activity,如图: 创建成功之后,打开刚刚创建的activity,来进行代码的编写: >>>阅读全文

全部原谅
5分钟前
0
0
什么是React-redux、为什么使用React-redux、怎么使用React-redux

1、什么是React-redux React-redux是用于连接React和Redux的 2、为什么使用React-redux 使用React-redux可以使redux部分代码更简洁更明了,比如组建中需要使用到的数据都在mapStateToProps方...

kimyeongnam
8分钟前
0
0
Spring核心——Stereotype组件与Bean扫描

在注解自动装载中介绍了通过注解(Annotation)自动向Bean中注入其他Bean的方法,本篇将介绍通过注解(Annotation)向容器添加Bean的方法。 Spring的核心容器提供了@Component和@Bean注解来标...

随风溜达的向日葵
8分钟前
0
0
利用世界杯,读懂 Python 装饰器

Python 装饰器是在面试过程高频被问到的问题,装饰器也是一个非常好用的特性, 熟练掌握装饰器会让你的编程思路更加宽广,程序也更加 pythonic。 今天就结合最近的世界杯带大家理解下装饰器。...

猫咪编程
11分钟前
0
0
flink fold example

flink fold例子 import org.apache.flink.api.common.functions.*;import org.apache.flink.streaming.api.datastream.DataStream;import org.apache.flink.streaming.api.environment.S......

coord
12分钟前
0
0
c++ qt 组播总结

每个人都有不同的认知规律和习惯, 有的人喜欢搞一套严密的大理论, 论述起来滔滔不绝, 不管自己懂不懂, 反正读者/听者是没搞懂。 有的人喜欢从实践出发, 没看到代码, 不运行一下, 不看...

backtrackx
17分钟前
0
0
Sublime text2安装json格式化插件SublimePrettyJson[Windows]

一、下载SublimePrettyJson插件包 https://github.com/dzhibas/SublimePrettyJson 二、将下载的文件解压放到在package目录下面 C:\Users\lucky\AppData\Roaming\Sublime Text 3\Packages 每个......

lazy~
17分钟前
0
0
安装vue-cli 报4058错误

1. 4058是网络代理错误。 安装淘宝源修改一下就可以了: npm --registry https://registry.npm.taobao.org info underscore 改为cnpm执行: cnpm install --global vue-cli 安装成功: 试试版...

MrBoyce
18分钟前
0
0
CPU飙升分析

1、top -----看具体的进程 2、top -H -p pid ------该进程的线程 3、printf 0x%x 15248 ------将线程改为16进制 4、jstack 进程...

北极之北
21分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部