Delphi保存xml格式文件无法读取原因
用Delphi调用自己java写的webservice接口,查询数据。java三种返回数据格式,这里主要讲返回的ADOXML格式ADOQuery无法正常导入的原因:
public String login(String username, String password);
//返回json格式数据
public String OpenSQL_Json(String ssql);
//返回TClientDataSet格式xml数据
public String OpenSQL_Xml_Cds(String ssql);
//返回ADOQuery格式xml数据
public String OpenSQL_Xml_Qry(String ssql);
导入xml格式数据方法:
ADOQuery1.LoadFromFile(sxmlfile);
(经过多次对比实测:用上述导入方法比用走TClientDataset,循环逐字段添加要快至少10倍左右。(测试15000条记录,每条记录80个字段左右)导入只需要4秒,但是手工添加需要1分钟左右。当然TClientDataset也有导入功能,速度一样好像还要更快,但是存在数据量大导入报错,字符总数超过大约850万左右就会凉凉,一直找不到原因。有知道的可以@告诉我一下,谢谢。)
错误误截图:
经过各种折腾就是读取不了,反复对比字符串和格式铁保无任何错误!最终解决方法:
收到的xml串保存为文件时一定要记得文件编码为utf-8, 切记utf-8并不等于unicode,否则铁定读取不了!各种错误闪瞎你眼睛。检测是否为utf-8编码可以用Notepad++,
另外一个小技巧:检测xml串是否合法可以把xml文件拖到浏览器中,浏览器能正常解析格式化铁定没问题。我这个是浏览器也解析不了。
本文来自博客园,作者:IT情深,转载请注明原文链接:https://www.cnblogs.com/wh445306/p/16751922.html