使用XDocument.Parse解析XML时报异常: 根级别上的数据无效。 第 1 行 位置 1。
解决方式目前有两种:
1
XmlDocument doc = new XmlDocument();
doc.LoadXML("Config.XML");
把loadXML函数改成load()函数就可以解决了。两个的用法有区别:
LoadXml (): 该方法从字符串中读取 XML。
如 LoadXml("<book><title>C#</title></book>");
Load (): 方法将文档置入内存中并包含可用于从每个不同的格式中获取数据的重载方法。
如 Load(文件)
2
google、百度后基本确定是文件编码的问题,XmlDocument.Save()生成的文件有时可以解析有时又不行;
可以解析的xml文件编码属性为:(NotePad++查看)
不能解析的xml文件编码属性为:
只要让XmlDocument.Save()生成的文件格式符合可以解析标准即可
//设置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对象