读取和写入XML文件
-
10-10-2019 - |
题
我需要使用Delphi处理XML文件。
我想向用户提供XML数据,并保存用户在XML文件中所做的更改。
例如,在以下XML(呈现给用户)中,如果用户 changed City of ABC under client
和 added 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合作以实现这一目标,但没有成功。
谁能帮助我实现这一目标?
解决方案
问题在于我正在使用的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。
不隶属于 StackOverflow