Ede*_*com 4 xml delphi encoding tclientdataset delphi-7
我正在使用Delphi7 ClientDataSet来读取和写入我的一些数据的xml文件.
Howerver,当我想在程序外浏览它时(在Windows资源管理器中双击xml)我得到'在文本内容中找到了无效字符.处理资源时出错 - 即使数据在Delphi中读写也很好.
有没有办法强制TClientDataSet以缩进的方式将其内容写入一行?
这样我就可以轻松地将其打开到文本编辑器中,找到哪个字符会触发上述错误.
无论如何:我发现使用CR/LF和压缩来编写XML文件要清楚得多.
Thx提前.
使用该TCustomClientDataSet.SaveToFile过程时,可以选择输出格式,默认情况下,此值设置为dfBinary以二进制格式对数据进行编码.
 procedure TCustomClientDataSet.SaveToFile(const FileName: string = '';
  Format: TDataPacketFormat = dfBinary);
尝试将Format参数更改为dfXML或dfXMLUTF8
ClientDataSet1.SaveToFile('file.xml',dfXML);
如果你想格式化XML输出你可以使用该FormatXMLData函数试试这个代码
uses
 XMLDoc;
Procedure FormatXMLFile(XmlFile:string);
var
   oXml : TXMLDocument;
 begin
   oXml := TXMLDocument.Create(nil);
   try
     oXml.LoadFromFile(XmlFile);
     oXml.XML.Text:=xmlDoc.FormatXMLData(oXml.XML.Text);
     oXml.Active := true;
     oXml.SaveToFile(XmlFile);
   finally
     oXml := nil;
   end;
 end;
最后你的代码看起来像这样
 ClientDataSet1.SaveToFile('test.xml',dfXML);
 FormatXMLFile('test.xml');
| 归档时间: | 
 | 
| 查看次数: | 5284 次 | 
| 最近记录: |