我有一个XML文件。当我尝试使用.LOAD方法加载它时,我得到了这个例外:
System.Xml.XmlException: data at root level invalid at position 1 line 1.
我在XML文件开头的内容是:
<?xml version="1.0" standalone="yes" ?>
答案 0 :(得分:3)
我认为用于LoadXml的字符串由
构造错误<
根据最后的评论我打赌代码看起来像(或它的一些变体),而不是直接从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并查询内容来解决了这个问题。