【问题标题】:Why appears the error: Error In the XML document (0, 0)?为什么会出现错误:Error In the XML document (0, 0)?
【发布时间】:2018-06-04 04:33:38
【问题描述】:

我的代码有错误。我想反序列化不同的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:缺少根元素。

【问题讨论】:

  • 打开的文件里有什么?
  • @HorusKol 你的意思是 XML 文件吗?
  • 是的。请发布产生错误的 XML 文件的简短示例
  • @HorusKol 你的意思是我需要用 XML 阅读器替换它而不是使用那个 XML 序列化器吗?
  • @HorusKol 另外,当我尝试放置一个 XML 阅读器时它显示错误,我想我错过了一个使用参考,但我不知道是哪个,因为我在使用 System.xml 参考。启用序列化

标签: c# xml winforms xml-serialization


【解决方案1】:

您需要将文件导入 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 文档

【讨论】:

  • 这是保存文件的 XML 代码:w3.org/2001/XMLSchema-instance" xmlns:xsd= "w3.org/2001/XMLSchema"> 我的年龄从来没有让我变得聪明描述2018-02-27T22:05:392018-02 -27T22:05:39
猜你喜欢
  • 1970-01-01
  • 2021-08-20
  • 1970-01-01
  • 2018-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-22
  • 1970-01-01
相关资源
最近更新 更多