打印本文 打印本文 关闭窗口 关闭窗口
【我爱DELPHI,我学XML】DAY 1:简单节点增删改查
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2223  更新时间:2009/4/23 18:26:25  文章录入:mintao  责任编辑:mintao

DAY-1

XML文档简单读写方法

CST 2005-07-08

最近参加一个项目需要写XML,因此我开始学习XML在delphi中的编程方法,我将我STEP BY STEP的入门过程记录下来,希望经验丰富的前辈能给我指点,也希望给像我一样有意尝试XML编程的朋友投石问路一下。 

本文中使用的一个实例记录一个学生信息的XML文档,具体代码可以访问我的YAHOO公文包

 http://cn.f1.pg.briefcase.yahoo.com/iamcst 

\BLOG附件\XML_DAY_01_BASIC_NODE

也可以电邮我。

基本介绍

本文档描述采用TXMLDocument类读写XML文档。

在控件选项卡的InternetàXMLDOC

节点的类为IXMLNode

 

基本编程过程

过程

代码

读入XML文件并激活文档

    xmldoc1.LoadFromFile(''''test.xml'''');

    xmldoc1.Active := true;

创建节点实体

var

   nd:IXMLNode;

定位节点

SearchNode:=xmldoc1.Node;   

//定位到根

SearchNode:=SearchNode.ChildNodes.Nodes[1];  

//第2层

SearchNode:=SearchNode.ChildNodes.Nodes[0];

//第1个节点

添加子节点

StNode为已定位的父节点,插入子实体节点后,指向子实体。//记录

Attribute为节点内参数

AttrNode为子实体节点的属性节点 //字段

 

StNode:=StNode.AddChild(''''STUDENT''''); StNode.Attributes[''''SID'''']:=’xxxx’;

    AttrNode:=StNode.AddChild(''''NAME'''');

    AttrNode.NodeValue :=sName;

删除子节点

TargetNode.ParentNode.ChildNodes.Delete

(TargetNode.ParentNode.ChildNodes.

IndexOf(TargetNode));

获得实体节点的属性子节点的值

TargetNode.ChildValues[‘NODENAME’]

定位子节点

遍历根节点,找到实体节点层

根据实体的ATTRIBUTE定位

sNode:=mNode.AttributeNodes.FindNode(''''ID'''');

保存文件

xmldoc1.SaveToFile(''''test.xml'''');

 

 

创建文档

采用手动创建一个文本方式的XML源代码文件,可以在DELPHI里用基本文件输出或者复制模板到目标地址,文件内容包括如下代码:

<?xml version="1.0" encoding="UTF-8"?>

<main>

</main>

 

写入根级选项

使用两个STRINGLIST实体,一个记录选项节点名称,一个记录选项值。

使用如下函数,将STRINGLIST写入根节点。

 

procedure TFormXMLTester.AddOption(const ANodeList,AValueList:TStringList);

var

    i:integer;

    rootNode:IXMLNode;

[1] [2] [3]  下一页

打印本文 打印本文 关闭窗口 关闭窗口