读取和写入XML文件
我需要使用Delphi处理XML文件 我想将DBGrid中的xml数据呈现给用户,并将用户所做的更改保存在xml文件中 例如,在下面提供给用户的xml中,如果用户在客户端下更改了ABC市,并添加了一个昵称为AAA的新客户,则这些更改应反映在xml文件中读取和写入XML文件,xml,delphi,delphi-2006,tclientdataset,txmldocument,Xml,Delphi,Delphi 2006,Tclientdataset,Txmldocument,我需要使用Delphi处理XML文件 我想将DBGrid中的xml数据呈现给用户,并将用户所做的更改保存在xml文件中 例如,在下面提供给用户的xml中,如果用户在客户端下更改了ABC市,并添加了一个昵称为AAA的新客户,则这些更改应反映在xml文件中 <Data LinkID=”0”> <Client> <Item Name=”ABC” Mobile=”1234” City=”IN” /> <Item Name=”PQR”
<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文件应采用指定的格式,该格式必须包含和标记 我将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。问题在于我使用的XML文件 XML文件应采用指定的格式,该格式必须包含和标记 我将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。Bharat,请检查此问题,了解如何将TClientDataset保存到XML文件。您可以详细说明您遇到的问题或错误吗?您能添加您尝试使用的代码吗?@Vicens:据我所知,数据包错误中出现了不匹配,该错误可能来自某个字段中的类型不匹配。但是,如果不看代码,很难说。Bharat,检查这个问题,看看如何将TClientDataset保存到XML文件。您可以详细说明您遇到了哪些问题或错误吗?您能添加您尝试使用的代码吗?@Vicens:据我所知,数据包错误中出现了不匹配,该错误可能来自某个字段中的类型不匹配。但是,如果没有看到代码,很难说。