本文整理自网络,侵删。
在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 数据类型cardinal 怎么转换成 string?
Delphi winapi: inflaterect - 改变矩形大小
更多相关阅读请进入《Delphi》频道 >>