XmlDocument.Load Vs XmlDocument.LoadXml

我刚刚遇到使用XmlDocument.LoadXml的问题。

应用程序崩溃,出现以下错误:

“根级别的数据无效。第1行,第1位”

在检查XML并发现它没有任何问题后,我搜索了一下,发现了一个使用XmlDocument.Load而不是XmlDocument.LoadXml

我已经尝试过,它完美无缺。

我的问题是:两种方法之间有什么区别,哪些可能导致一种工作而另一种方法失败?

XmlDocument.Load用于从流,TextReader,路径/ URL或XmlReader加载XML。 XmlDocument.LoadXml用于加载字符串中包含的XML。

它们是根本不同的加载XML的方式,具体取决于XML的实际存储位置。 所以听起来你使用错误的方法来处理XML的位置。

您是否尝试使用XmlDocument.LoadXml并传入文件名? 它没有这样做 – 它假定您传入的字符串 XML。 所以你可以使用:

 doc.LoadXml(""); 

要么

 doc.Load("myfile.xml"); 

如果这没有帮助,你能展示你失败的工作代码吗? 您可以通过不同的方式将LoadXml更改为Load

假设您以正确的方式使用XmlDocument.LoadXmlDocument.LoadXml ,此问题可能是由字节顺序标记引起的。

这个问题可能有用。

Load()从某个源加载,而LoadXml()直接从字符串加载

应用程序崩溃时出现以下错误:“根级别的数据无效。第1行,第1位”我怀疑您的xml数据没有根级别:例如:

  dataata   dataataa  

你需要在底层之上至少有一个根级别。 例如:

   dataata   dataataa   

所以请把一位母亲放在你的关卡之上,让它成为所有孩子的盛大母亲