There is an error in XML document (0, 0) during deserialization
10,541
ok solved,
using (Stream loadstream = new FileStream(loadpath, FileMode.Open))
{
XmlSerializer serializer = new XmlSerializer(typeof(FormSaving));
abc = (FormSaving)serializer.Deserialize(loadstream);
}
should have been FileMode.Open instead of FileMode.Create
Related videos on Youtube
Author by
jeremychan
Updated on June 04, 2022Comments
-
jeremychan almost 2 years
i have the following code to for xml serialization.
public class FormSaving { private string major; public string Majorversion { get; set; } } private void SaveButton_Click(object sender, RoutedEventArgs e) { string savepath; SaveFileDialog DialogSave = new SaveFileDialog(); // Default file extension DialogSave.DefaultExt = "txt"; // Available file extensions DialogSave.Filter = "XML file (*.xml)|*.xml|All files (*.*)|*.*"; // Adds a extension if the user does not DialogSave.AddExtension = true; // Restores the selected directory, next time DialogSave.RestoreDirectory = true; // Dialog title DialogSave.Title = "Where do you want to save the file?"; // Startup directory DialogSave.InitialDirectory = @"C:/"; DialogSave.ShowDialog(); savepath = DialogSave.FileName; DialogSave.Dispose(); DialogSave = null; FormSaving abc = new FormSaving(); abc.Majorversion = MajorversionresultLabel.Content.ToString(); using (Stream savestream = new FileStream(savepath, FileMode.Create)) { XmlSerializer serializer = new XmlSerializer(typeof(FormSaving)); serializer.Serialize(savestream, abc); } } private void LoadButton_Click(object sender, RoutedEventArgs e) { Stream checkStream = null; Microsoft.Win32.OpenFileDialog DialogLoad = new Microsoft.Win32.OpenFileDialog(); DialogLoad.Multiselect = false; DialogLoad.Filter = "XML file (*.xml)|*.xml|All files (*.*)|*.*"; if ((bool)DialogLoad.ShowDialog()) { try { if ((checkStream = DialogLoad.OpenFile()) != null) { loadpath = DialogLoad.FileName; checkStream.Close(); } } catch (Exception ex) { System.Windows.MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message); } } else { System.Windows.MessageBox.Show("Problem occured, try again later"); } FormSaving abc; using (Stream loadstream = new FileStream(loadpath, FileMode.Create)) { XmlSerializer serializer = new XmlSerializer(typeof(FormSaving)); abc = (FormSaving)serializer.Deserialize(loadstream); } MajorversionresultLabel.Content = abc.Majorversion; }
When i press the SaveButton, my label.content is saved into an xml file. However when i press the load button to load this xml file, i get the error "There is an error in XML document (0, 0)". I went to open my xml file after pressing the load button, it becomes blank and everything got erased. Can anyone help me fix this load button error?