读取和写入XML文件

时间:2010-10-21 12:35:05

标签: xml delphi delphi-2006 tclientdataset txmldocument

我需要使用Delphi处理XML文件。

我想将DBGrid中的xml数据呈现给用户,并将用户完成的更改保存在XML文件中。

例如,在下面的xml(呈现给用户)中,如果用户changed City of ABC under clientadded a new customer with NickName as "AAA"这些更改应该反映在XML文件中。

<Data LinkID=”0”>
  <Client>
      <Item Name=”ABC” Mobile=”1234” City=”IN” />
      <Item Name=”PQR” Mobile=”5678” City=”IN” />
  </Client>
  <Customer>
    <Item NickName=”XYZ” Phone=”1254” City=”IN” />
    <Item NickName=”MNO” Phone =”41255” City=”IN” />
  </Customer>
</Data>

我正在使用XMLDocument和ClientDataSet来实现这一目标,但没有成功。

有人可以帮助我实现这个目标吗?

1 个答案:

答案 0 :(得分:4)

问题在于我正在使用的XML文件。

XML文件应采用指定格式,且必须包含<METADATA> and <ROWDATA>个标记。

我将xml更改为该格式。

<?xml version="1.0" standalone="yes"?>  
<DATAPACKET Version="2.0">
<METADATA>
<FIELDS>
<FIELD attrname="Name" fieldtype="string" WIDTH="50"/>
<FIELD attrname="Mobile" fieldtype="string" WIDTH="20"/>
<FIELD attrname="City" fieldtype="string" WIDTH="20"/>
</FIELDS><PARAMS CHANGE_LOG="6 1 8"/>
</METADATA>
<ROWDATA>
<ROW Name="ABC" Mobile="1234" City="IN"/>
<ROW Name="PQR" Mobile="5678" City="IN"/>
<ROW Name="AAA" Mobile="7894" City="IN"/>
<ROW Name="MNO" Mobile="4569" City="IN"/>
<ROW Name="ABC" Mobile="45685" City="IN"/>
</ROWDATA>
</DATAPACKET>

接下来我用了 ClientDataSet1.LoadFromFile('E:\projects\XML\Sample App with CDS\XmlText.xml');读取XML文件。

在网格中完成修改后,我使用ClientDataSet1.SaveToFile('E:\projects\XML\Sample App with CDS\XmlText.xml',dfXML);方法保存回XML。

为此目的不需要XMLDocument。