XML解析异常:根级别上的数据无效。 第 1 行 位置 1。

异常信息:
 
使用XDocument.Parse解析XML时报异常: 根级别上的数据无效。 第 1 行 位置 1。
 
 
异常环境:
1、客户端使用的是Framework2.0的XmlDocument生成Xml文件并传给服务端
2、服务端使用的是Framework4.0的XDocument.Parse解析上传的Xml文件内容,解析内容时抛出上传异常
 
 
分析原因:
1、google、百度后基本确定是文件编码的问题,XmlDocument.Save()生成的文件有时可以解析有时又不行
2、可以解析的xml文件编码属性为:(NotePad++查看)
3、不能解析的xml文件编码属性为:
4、只要让XmlDocument.Save()生成的文件格式符合可以解析标准即可
 
 
解决方法:
使用XmlDocument.Save()直接保存XML有编码问题,使用下述方法即可
 
//设置xml生成样式
XmlWriterSettings xmlSetting = new XmlWriterSettings();
xmlSetting.Encoding = new UTF8Encoding(false);
xmlSetting.Indent = true;

//保存xml文件
XmlWriter writer = XmlWriter.Create(filePath, xmlSetting);
xmldoc.Save(writer);
writer.Close();

注:
filePath:保存的文件路径
xmldoc:XmlDocment对象





posted @ 2013-04-19 12:25    阅读(20394)  评论(0编辑  收藏  举报