Почему появляется ошибка: Ошибка в документе XML (0, 0)? - PullRequest
0 голосов
/ 04 июня 2018

У меня ошибка в моем коде.Я хочу десериализовать различные 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 голосов
/ 04 июня 2018

Вам нужно получить файл steam в 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

...