C#反序列化XML异常:XML文档中有错误“Missing root element”(0,0)

问:

将 Xml 字符串反序列化为 Xml 对象时xml文档 0 0 中有错误,会引发以下异常。

图片[1]-C#反序列化XML异常:XML文档中有错误“Missing root element”(0,0)-唐朝资源网

即XML文档中有错误(0,0):缺少根元素。

答:

先看代码:

StringBuilder sb = new StringBuilder();
using (MemoryStream stream = new MemoryStream())
{
    StreamWriter writer = new StreamWriter(stream);

    writer.Write(sb.ToString().Trim());
    writer.Flush();
    //stream.Position=0;
    // or

    //stream.Seek(0, SeekOrigin.Begin);
    StreamReader reader = new StreamReader(stream);
    XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
    object obj = xmlSerializer.Deserialize(reader);

图片[2]-C#反序列化XML异常:XML文档中有错误“Missing root element”(0,0)-唐朝资源网

reader.Close(); reader.Close(); writer.Close(); writer.Dispose(); }

异常在 obj = .(); 中抛出在这里。

问题在于 .Write(sb.().Trim());这里xml文档 0 0 中有错误,原因是写操作完成,最后一个流的位置停留在尾部。所以,流的位置定位到反序列化前的0开始位置就OK了。

这就是上面的评论所在。

© 版权声明
THE END
喜欢就支持一下吧
点赞196赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容