/// <summary>
        /// 将xml对象内容字符串转换为DataSet
        /// </summary>
        /// <param name="xmlData"></param>
        /// <returns></returns>
        private static DataSet ConvertXMLToDataSet(string xmlData)
        {
            StringReader stream = null;
            XmlTextReader reader = null;
            try
            {
                DataSet ds = new DataSet();
                stream = new StringReader(xmlData);
                //从stream装载到XmlTextReader
                reader = new XmlTextReader(stream);
                ds.ReadXml(reader);
                return ds;
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
            finally
            {
                if (reader != null)
                    reader.Close();
            }
        }
执行到 ds.ReadXml(reader);就抛出异常,System.Xml.XmlException: 根级别上的数据无效。怎么解决?

解决方案 »

  1.   

    看你的xmlData是否是合法的xml格式
      

  2.   

    不合法,不是任何xml都可以转为dataset
      

  3.   

    用这个函数转换的。再转回去就报错。
    //Ds转换为xml
            private static string ConvertDataSetToXML(DataSet ds)
            {
                MemoryStream stream = null;
                XmlTextWriter writer = null;            try
                {
                    stream = new MemoryStream();
                    //从stream装载到XmlTextReader
                    writer = new XmlTextWriter(stream, Encoding.Unicode);                //用WriteXml方法写入文件.
                    ds.WriteXml(writer);
                    int count = (int)stream.Length;
                    byte[] arr = new byte[count];
                    stream.Seek(0, SeekOrigin.Begin);
                    stream.Read(arr, 0, count);                UnicodeEncoding utf = new UnicodeEncoding();
                    return utf.GetString(arr).Trim();
                }
                catch (System.Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    if (writer != null)
                        writer.Close();
                }
            }
      

  4.   

    请确定 "utf.GetString(arr).Trim()"
    此处产出的XML是一个完整的合法格式的XML.
      

  5.   

    将ds转换为xml的函数(ConvertDataSetToXML(DataSet ds))去掉,直接改为string xml=ds.GetXml().ToString();就可以了,不报错了。。