为什么会出现错误:错误在XML文档(0,0)中?

时间:2018-06-04 04:33:39

标签: c# xml winforms xml-serialization

我的代码中有错误。我想反序列化不同的XML文件,并在TextBox中打开它们 我遇到的问题是当我采用文件的路径时,我认为这是错误所在,因为你需要一个确切的文件路径(例如):

FileStream FS = new FileStream("example.analy", FileMode.Open,  FileAccess.Read);

但是我用它替换了它:

FileStream FS = new FileStream (openFileDialog1.FileName, FileMode.Open, FileAccess.Read);

读取在openfiledialog中选择的文件 这是我的完整代码:

XmlSerializer XS = new XmlSerializer(typeof(Reminders.Information));

FileStream FS = new FileStream (openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
Information Info = (information)XS.Deserialize();
Settings.Default.Counter++;
Settings.Default.Save();

问题是当我尝试打开文件时,会出现以下错误:

  

System.InvalidOperationException:'错误在XML文档(0,0)中。   内部异常
XmlException:缺少根元素。

1 个答案:

答案 0 :(得分:0)

您需要将文件传输到XML阅读器中,然后才能将其序列化 - https://msdn.microsoft.com/en-us/library/tz8csy73(v=vs.110).aspx

// Create an instance of the XmlSerializer specifying type and namespace.
    XmlSerializer serializer = new
    XmlSerializer(typeof(OrderedItem));

    // A FileStream is needed to read the XML document.
    FileStream fs = new FileStream(filename, FileMode.Open);
    XmlReader reader = XmlReader.Create(fs);

    // Declare an object variable of the type to be deserialized.
    OrderedItem i;

    // Use the Deserialize method to restore the object's state.
    i = (OrderedItem)serializer.Deserialize(reader);
    fs.Close();

据我所知,您正在尝试不反序列化......并且没有任何内容不是有效的XML文档

相关问题