delphi 与XML实例
来源:互联网 发布:php实现图片高斯模糊 编辑:程序博客网 时间:2024/06/02 05:29
(*) uses msxml,XMLIntf,XMLDoc;
(1)//从文件存取
function writeXML(XMLName,nodeName,nodeValue:string;proID:integer):integer;
var
xmlDoc:IXMLDocument;
rootNode,CNode,NNode:IXMLNode;
iValue,iReturn:integer;
sValue:string;
begin
result := -1 ;
if not fileExists(XMLName) then exit;
xmlDoc := TXMLDocument.Create(nil); //***** 创建TXMLDocument *****
xmlDoc.Active := True; iReturn:=-1;
try
try
xmlDoc.LoadFromFile(XMLName) ; //***** 载入XML文件 *****
xmlDoc.Version := '1.0';
xmlDoc.Encoding :='GB2312';
rootNode := xmlDoc.ChildNodes.FindNode('Document'); //***** 查找结点 *****
CNode := rootNode.ChildNodes.FindNode('product');
if CNode<>nil then
begin
// iValue := CNode.GetNodeValue; //***** 取结点值 *****
iValue:=CNode.Attributes['proID']; //***** 取结点属性 *****
while (proID<>iValue) and (CNode<>nil) do //找某
begin
NNode := rootNode.ChildNodes.FindSibling(CNode,1); //***** 查找下一结点 *****
CNode := NNode;
if CNode<>nil then iValue:=CNode.Attributes['proID'];
end;
end;
if CNode=nil then //某 没找到 ****
begin
CNode:=rootNode.AddChild('product'); //***** 添加一个结点 *****
CNode.SetAttribute('proID', proID); // ***** 写结点属性 *****
end;
CNode.SetAttribute('uninstall', 'false');
NNode := CNode.ChildNodes.FindNode(nodeName);
if NNode=nil then
NNode:=CNode.AddChild(nodeName);
NNode.SetNodeValue(nodeValue) ; // ***** 写结点值 *****
xmlDoc.SaveToFile(XMLName) ;
except
iReturn:=-1;
end;
finally
xmlDoc := nil ; //***** 释放TXMLDocument *****
result := iReturn;
end;
end;
(2)删除结点
function removeNode(XMLName:string;proID:integer):integer;
var
xmlDoc:IXMLDocument;
rootNode,CNode,NNode:IXMLNode;
iValue,iReturn:integer;
sValue:string;
begin
result := -1 ;
if not fileExists(XMLName) then exit;
xmlDoc := TXMLDocument.Create(nil);
xmlDoc.Active := True; iReturn:=-1;
try
try
xmlDoc.LoadFromFile(XMLName) ;
xmlDoc.Encoding :='GB2312';
rootNode := xmlDoc.ChildNodes.FindNode('Document');
CNode := rootNode.ChildNodes.FindNode('product');
if CNode<>nil then
begin
iValue:=CNode.Attributes['proID'];
while (proID<>iValue) and (CNode<>nil) do //找某
begin
NNode := rootNode.ChildNodes.FindSibling(CNode,1);
CNode := NNode;
if CNode<>nil then iValue:=CNode.Attributes['proID'];
end;
end;
if CNode<>nil then rootNode.ChildNodes.Remove(CNode); //找到 ,删除
xmlDoc.SaveToFile(XMLName) ;
iReturn := 0;
except
iReturn:=-1;
end;
finally
xmlDoc := nil ;
result := iReturn;
end;
end;
- delphi 与XML实例
- delphi与sqlite实例
- Delphi与XML
- Delphi与XML
- Delphi与XML
- Delphi与XML
- Delphi与XML专题之三 ----- Delphi与XML
- delphi dll 实例 与 dll窗体实例
- delphi 生成xml 方法 与 delphi txt文件操作
- delphi电子邮件收发编程讲解与实例
- xml设置与读取实例
- xml与ajax联合实例
- Delphi与XML专题之二 -----Delphi 与 XML 示例(直接利用IXMLDocument)
- 052_《Delphi网络应用开发技术与实例》
- delphi开发学习四:TClientDataSet与TDataSetProvider控件使用实例
- 最简单的TTcpServer与TTcpClient通信实例-Delphi
- Delphi 与 XML 示例(直接利用IXMLDocument)
- Delphi 与 XML 示例(直接利用IXMLDocument)
- 中国地名英译的几点注意事项
- [音乐天堂]Ce train qui s’en va 离站的火车
- C#调用DLL方法
- HTTP POST的文件上传问题
- 创建IXMLDOMDocument对象的三种方法
- delphi 与XML实例
- 拥我入心(吻别)英文歌词
- .NET下的报表生成(三)
- 安装不了东西呀!!!!!!
- bezier曲线的插值模拟算法
- flash中的时间
- 今天要学sql-server
- 一个VC的简单问题
- 防止注入