【转】“根级别上的数据无效”问题的解决

搜索这个问题很费时间。我的问题跟这位作者一样:

http://blog.csdn.net/hdzdw/archive/2008/10/26/3152807.aspx

  1. private void button1_Click(object sender, EventArgs e)
  2.         {
  3. try
  4.             {
  5.                 XmlDocument doc = new XmlDocument();
  6. string file = @"D:\Books.xml";
  7.                 file = file.Trim();
  8.                 doc.LoadXml(file);
  9.             }
  10. catch (XmlException ex)
  11.             {
  12.                 MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace);
  13.             }           
  14.         }

    前提是经过很检验,XML文件是合格并有效的。可一运行就就会出现“根级别上的数据无效”的错误,很久没弄明白,网上搜了一下,发现遇到这问题的还真不少。有的网友说LoadXml之前加上file = file.Trim();就解决了,试了还是不行。于是改用Load()方法,问题解决。再查Msdn,原来两个方法的用法不同。

    LoadXml (): 该方法从字符串中读取   XML。   LoadXml("<book><title>C#</title></book>");
    Load ():  方法将文档置入内存中并包含可用于从每个不同的格式中获取数据的重载方法。Load(文件)

(可能因为这两件方法都有一个参数为string的重载吧,于是理所当然的以后这两个方法混用了)。

    希望为同样错误困扰的网友有点点帮助,也让自己牢记。

posted @ 2010-09-21 01:16  irischan  阅读(6647)  评论(2编辑  收藏  举报