如何从xml文件读取数据,并以delphi语言显示在文本框中
发布时间:2020-12-16 23:36:36 所属栏目:百科 来源:网络整理
导读:我是delphi语言的新手,在这里我有一个疑问,我有一个名为vehicle.xml的xml文件. 看起来像这样 datavehicle typeCar/type model2005/model number1568/number/vehiclevehicle typeCar/type model2009/model number1598/number/vehicle/data 我的Delphi窗体包含
我是delphi语言的新手,在这里我有一个疑问,我有一个名为vehicle.xml的xml文件.
看起来像这样 <data> <vehicle> <type>Car</type> <model>2005</model> <number>1568</number> </vehicle> <vehicle> <type>Car</type> <model>2009</model> <number>1598</number> </vehicle> </data> 我的Delphi窗体包含三个文本框: > txtType 在加载页面时,我想在文本框中显示vehicle.xml的内容,如: > txtType = Car 解决方法
看看Delphi自己的TXMLDocument组件,例如:
procedure TForm1.FormCreate(Sender: TObject); var Vehicle: IXMLNode; begin XMLDocument1.FileName :='vehicle.xml'; XMLDocument1.Active := True; try Vehicle := XMLDocument.DocumentElement; txtType.Text := Vehicle.ChildNodes['type'].Text; txtModel.Text := Vehicle.ChildNodes['model'].Text; txtnumber.Text := Vehicle.ChildNodes['number'].Text; finally XMLDocument1.Active := False; end; end; 或者,直接使用IXMLDocument接口(TXMLDocument包装): procedure TForm1.FormCreate(Sender: TObject); var Doc: IXMLDocument; Vehicle: IXMLNode; begin Doc := LoadXMLDocument('vehicle.xml'); Vehicle := Doc.DocumentElement; txtType.Text := Vehicle.ChildNodes['type'].Text; txtModel.Text := Vehicle.ChildNodes['model'].Text; txtnumber.Text := Vehicle.ChildNodes['number'].Text; end; 更新:问题中的XML已被更改,现在将车辆元素包裹在数据元素内,并具有多个车辆元素.所以上面的代码必须相应调整,例如: procedure TForm1.FormCreate(Sender: TObject); var Doc: IXMLDocument; Data: IXMLNode; Node: IXMLNode; I: Integer; begin Doc := LoadXMLDocument('vehicle.xml'); Data := Doc.DocumentElement; for I := 0 to Data.ChildNodes.Count-1 do begin Node := Data.ChildNodes[I]; // if all of the child nodes will always be 'vehicle' only // then this check can be removed... if Node.LocalName = 'vehicle' then begin // use Node.ChildNodes['type'],Node.ChildNodes['model'],// and Node.ChildNodes['number'] as needed... end; end; end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |