delphi读写XML的技巧


本文整理自网络,侵删。

 在delphi的单元文件中的Uses部分引入:xmldom, XMLIntf, msxmldom, XMLDoc。这是Delphi支持读写的几个单元文件。
然后具体的实例原码:
     procedure TForm1.LoadXML(filepath:string);
var
      AXMLDocument :TXMLDocument;
      i,nodecount:integer;
      rootnode,searchnode:IXMLNode;
      NodeName:String;
begin
      AXMLDocument:=TXMLDocument.Create(Application);
      AXMLDocument.FileName:=filepath;
      AXMLDocument.Active:=true;
      nodecount:=AXMLDocument.DocumentElement.ChildNodes['DB'].ChildNodes.Count;
      rootnode:=AXMLDocument.DocumentElement.ChildNodes['DB'];
      //showmessage('共有节点:'+IntToStr(nodecount)+'个');
      for i:=0 to nodecount-1 do
      begin
         //showmessage('第'+inttostr(i)+'个子节点的NodeName是:'+rootnode.ChildNodes.Get(i).NodeName);
         //showmessage('---------');
         //showmessage('第'+inttostr(i)+'个子节点的NodeValue是:'+rootnode.ChildNodes.Get(i).NodeValue);
         //由于节点不存在value所以出现错误
         NodeName:=rootnode.ChildNodes.Get(i).NodeName;
         if CompareStr(NodeName,'CONNECTION')=0 then
         begin
            //showmessage('找到节点');
            searchnode:=rootnode.ChildNodes.Get(i);
            form1.conf.dataBaseName:=searchnode.ChildNodes['ODBCNAME'].Text;
            form1.conf.password:=searchnode.ChildNodes['PASSWORD'].Text;
            form1.conf.username:=searchnode.ChildNodes['USERNAME'].Text;
            SetLength(form1.myDB,i+1);
            myDB[i]:=form1.conf;
            //showmessage('数据库配置的名字:'+searchnode.ChildNodes['ODBCNAME'].Text);
         end; 
      end;
      //showmessage('当前配置的数据连接个数为:'+inttostr(length(myDB)));
      FreeAndNil(AXMLDocument);
end;

Delphi将XML文档转化为树状节点结构,然后可以逐层访问。
主要是在读某个Node时候,可以根据节点所处的位置访问。
需要注意的是    nodecount:=AXMLDocument.DocumentElement.ChildNodes['DB'].ChildNodes.Count;
这个'DB'节点必须是整个XML根节点的子节点,如果是处于更深层的节点,则返回的节点是空。


将更新写入xml文件的方法:AXMLDocument.DocumentElement.ChildNodes[''].text:=Value;
                                            AXMLDocument.savetofile(XMLFileName);

相关阅读 >>

Delphi 获取计算机名和用户名

Delphi如何实现浏览文件夹

Delphi twebbrowser 用法

Delphi 获取网卡mac代码可用2020.01.22

Delphi tstreamwriter tstreamreader 流操作3

Delphi webbrowser1 querystatuswb

Delphi xe2读取内存偏移数据代码

Delphi 字符串截取

Delphi 录音制作 wav 文件

Delphi application.messagebox 详解

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...