delphi读写XML的技巧  
官方Delphi 学习QQ群: 682628230(三千人)\n
频道

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);


推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.096261024475098 seconds