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文件拖到浏览器中,浏览器能正常解析格式化铁定没问题。我这个是浏览器也解析不了。

posted @ 2022-10-04 00:15  IT情深  阅读(60)  评论(0编辑  收藏  举报