DELPHI读写xml文件
2016-06-29 09:45
716 查看
有时,只需要用XML作一些小的应用,比如只是简单地保存日志或者一些配置,这时我们只需要直接读写XML就好,效率第一。
Delphi盒子有一个直接读写XML文件 (例子和代码),其核心函数为下面两个函数(一读一写):
{-------------------------------------------------------------------------------
Fun/Pro: GetXMLNodeValue
@Date: 2004.12.11
@Param: xmlFile xml文件
@Param: xmlnodepath 节点
@Param: xmlattrname 节点中的属性名称,如果直接取节点值则可以忽略此参数。
@Param: dep 节点的参数的分隔符,默认为.
@Return: 第一个节点的值
-------------------------------------------------------------------------------}
function GetXMLNodeValue(strEntityEngineFile:String; xmlNodePath:String;
const xmlattrname:String=''; const dep:Char ='.'):String;
var
xmlDocument :IXMLDocument;
node :IXMLNode;
xmlnodeList :TStrings;
i :Integer;
urlcount :Integer;
begin
//xml节点路径
xmlnodeList:=TStringList.Create;
xmlnodeList.Delimiter:=dep;
xmlnodeList.DelimitedText:=xmlnodepath;
urlcount:=xmlnodeList.Count;
//xml对象
xmlDocument :=TXMLDocument.Create(nil);
xmlDocument.LoadFromFile(strEntityEngineFile);
xmlDocument.Active:=true;
try
node:= xmlDocument.DocumentElement;
if(node.NodeName = xmlnodeList[0]) then begin
//扫描节点
for i := 1 to urlcount-1 do begin
if(node<>nil) then
node := getnodefromIXMLNodeList(node.ChildNodes,xmlnodeList[i])
else Break;
end;
if(node=nil)then begin
result:='';
end else begin
Delphi盒子有一个直接读写XML文件 (例子和代码),其核心函数为下面两个函数(一读一写):
{-------------------------------------------------------------------------------
Fun/Pro: GetXMLNodeValue
@Date: 2004.12.11
@Param: xmlFile xml文件
@Param: xmlnodepath 节点
@Param: xmlattrname 节点中的属性名称,如果直接取节点值则可以忽略此参数。
@Param: dep 节点的参数的分隔符,默认为.
@Return: 第一个节点的值
-------------------------------------------------------------------------------}
function GetXMLNodeValue(strEntityEngineFile:String; xmlNodePath:String;
const xmlattrname:String=''; const dep:Char ='.'):String;
var
xmlDocument :IXMLDocument;
node :IXMLNode;
xmlnodeList :TStrings;
i :Integer;
urlcount :Integer;
begin
//xml节点路径
xmlnodeList:=TStringList.Create;
xmlnodeList.Delimiter:=dep;
xmlnodeList.DelimitedText:=xmlnodepath;
urlcount:=xmlnodeList.Count;
//xml对象
xmlDocument :=TXMLDocument.Create(nil);
xmlDocument.LoadFromFile(strEntityEngineFile);
xmlDocument.Active:=true;
try
node:= xmlDocument.DocumentElement;
if(node.NodeName = xmlnodeList[0]) then begin
//扫描节点
for i := 1 to urlcount-1 do begin
if(node<>nil) then
node := getnodefromIXMLNodeList(node.ChildNodes,xmlnodeList[i])
else Break;
end;
if(node=nil)then begin
result:='';
end else begin
相关文章推荐
- Delphi之多线程实例
- 郁闷的Delphi新闻
- delphi新语法之泛型实现的对象池模板
- Delphi 编码转换 Unicode gbk big5(使用LCMapString设置区域后,再用API转换)
- 提高Delphi的编译速度(bpl和bcp)
- Delphi COM编程技术三类型库(库文件中的工具栏,很全)
- delphi高手突破学习笔记之面向对象类和对象的本质
- Delphi OleVariant 类型的用法
- 在VC6.0下如何调用Delphi5.0开发的进程内COM
- 如何在Delphi中调用VC6.0开发的COM
- delphi调用C#webservice接口的中文编码问题
- 使用delphi 开发多层应用(二)为什么要使用多层开发?
- 使用delphi 开发多层应用(三)Delphi常用多层框架介绍
- 我常用的delphi 第三方控件
- Delphi反汇编内部字符串处理函数/过程不完全列表
- ACCESS技巧集(DELPHI AND SQL)
- delphi数据库存储图片
- Delphi xe FireMonkey FMX StingGrid 点击表头排序
- Delphi中inherited问题
- delphi 获取cmd命令返回并显示(笔记)