这是我写的一段代码:    private void ReadXmlFile(string fileName)
    {
      string tempText1 = "tempX";
      string tempText2 = "tempY";
      string replaceText1 = "replaceX";
      string replaceText2 = "replaceY";      MemoryStream mStream = new MemoryStream();  
      StreamWriter sw = null;
      using (FileStream fs = new FileStream(fileName, FileMode.Open))
      {
        using (StreamReader sr = new StreamReader(fs))
        {
          sw = new StreamWriter(mStream);
          string text = string.Empty;
          do
          {
            text = sr.ReadLine();
            if (text.Contains(tempText1))
            {
              text = text.Replace(tempText1, replaceText1);
            }
            if (text.Contains(tempText2))
            {
              text = text.Replace(tempText2, replaceText2);
            }
            sw.WriteLine(text);
            sw.Flush();
          }
          while (sr.Peek() >= 0);
        }
      }      XmlDocument doc = new XmlDocument();
      document.PreserveWhitespace = true;
      document.Load(mStream);
    }在document load 这个MemoryStream时,有个XmlException扔出, Root element is missing!
请问这是什么原因造成的啊?
如果直接用FileStream打开这个xml文件,用XmlDocument load 这个流则没有错误.是不是使用MemoryStream要注意一些问题啊?

解决方案 »

  1.   

    Root element is missing?
    找不到根节点吗??是不是你的XML文件有点问题!
      

  2.   

    Xml文件没问题,因为用FileStream打开并把FileStream付给XmlDocument load则没问题
      

  3.   

    mStream里没有东西吧你怎么能加载上呢
      

  4.   

    我找到原因了
    原来在XmlDocument加载MemoryStream前,要将它的读取位置设置为0...mStream.Seek(0, SeekOrigin.Begin);
      

  5.   

    加载MemoryStream在文件很大的时候比加载string快一点