加载时的XML异常

时间:2011-04-28 00:14:20

标签: c# xml

我有一个XML文件。当我尝试使用.LOAD方法加载它时,我得到了这个例外:

System.Xml.XmlException: data at root level invalid at position 1 line 1. 

我在XML文件开头的内容是:

<?xml version="1.0" standalone="yes" ?>

4 个答案:

答案 0 :(得分:3)

我认为用于LoadXml的字符串由

构造错误
  • 忽略BOM并强制执行错误编码
  • 将BOM作为第一个字符阅读
  • 手工构建,第一个字符不是<

根据最后的评论我打赌代码看起来像(或它的一些变体),而不是直接从Stream对象加载XML(它将正确处理编码):

    // My guess of how wrong code looks like! Not a solution!!!!
    StreamReader r = new StreamReader(path, System.Text.Encoding.Unicode);
    string xml = r.ReadToEnd();
    XmlDocument d = new XmlDocument();
    d.LoadXml(xml);

您应该检查构造您在XmlDocument.LoadXml中使用的字符串的代码,并检查它是否确实是有效的XML。我建议创建一个小程序来模拟失败的代码并调查行为。

答案 1 :(得分:0)

第1行第1行表明它遇到的第一个字符存在问题。

我建议首先确认没有前导空格/其他字符在那里(听起来很傻,但它们可以很容易地进入)。

它也可能是一个字符编码问题,导致第一个字符不能被读作'&lt;'。

答案 2 :(得分:0)

我打赌它不存在。我发现当我收到此错误时,文件或路径丢失/不正确。

答案 3 :(得分:0)

感谢您提出建议。问题出在构建服务器上,XML文件是从名为File的表中的内容字段中提取的。我正在使用FileID访问XML。但是FileID与我本地数据库上的FileID不同。因此,在构建服务器上,我从具有虚拟数据的测试记录中提取XML。因此错误。希望我有道理。我已经通过动态查找FileID并查询内容来解决了这个问题。