Мне нужна помощь, чтобы указать, что я делаю неправильно здесь. Я искал SO и пробовал разные способы загрузить этот XML, и я просто не мог понять, что могло бы вызвать эту ошибку:десериализовать XML-документ для коллекции объектов C#
System.InvalidOperationException: В документе XML есть ошибка (1, 1). ---> System.Xml.XmlException: данные на корневом уровне недействительны. Строка 1, позиция 1.
<?xml version="1.0" encoding="utf-8"?>
<folderlist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<foldersetting>
<id>1</id>
<source>
<path>\\USApps2\AVL\Attachments</path>
<datelastread>2016-01-25T10:51:12.6030162-08:00</datelastread>
<filter>
<owner>US\</owner>
<filetype>*</filetype>
</filter>
</source>
<destination>
<path>E:\UserData\AVL</path>
<overwrite>false</overwrite>
</destination>
</foldersetting>
<foldersetting>
<id>2</id>
<source>
<path>\\TWAVLSVR\AVL\Attachments</path>
<datelastread>2016-01-22T10:51:12.6030162-08:00</datelastread>
<filter>
<owner>TW\</owner>
<filetype>PDF</filetype>
</filter>
</source>
<destination>
<path>E:\UserData\AVL</path>
<overwrite>false</overwrite>
</destination>
</foldersetting>
<foldersetting>
<id>3</id>
<source>
<path>E:\UserData\AVL</path>
<datelastread>2016-01-22T10:51:12.6030162-08:00</datelastread>
<filter>
<owner>US\</owner>
<filetype>*</filetype>
</filter>
</source>
<destination>
<path>E:\UserData\AVL\Web</path>
<overwrite>false</overwrite>
</destination>
</foldersetting>
</folderlist>
Вот мое определение класса:
[Serializable()]
public class Filter
{
[XmlElement("owner")]
public string Owner {get; set;}
[XmlElement("filetype")]
public string FileType { get; set; }
}
[Serializable()]
public class SourceFolder
{
[XmlElement("path")]
public string Path { get; set; }
[XmlElement("datelastread")]
public DateTime DateLastRead { get; set; }
[XmlElement("filter")]
public Filter FilterTypes { get; set; }
}
[Serializable()]
public class DestinationFolder
{
[XmlElement("path")]
public string Path { get; set; }
[XmlElement("overwrite")]
public bool OverWrite { get; set; }
}
[Serializable()]
public class FolderSetting
{
[XmlElement("id")]
public int ID { get; set; }
[XmlElement("source")]
public SourceFolder Source { get; set; }
[XmlElement("destination")]
public DestinationFolder Destination { get; set; }
}
[Serializable()]
[XmlRoot("folderlist")]
public class FolderList
{
public FolderList()
{
FolderSettings = new List<FolderSetting>();
}
[XmlElement("foldersetting")]
public List<FolderSetting> FolderSettings;
}
Здесь я десериализации XML:
XmlSerializer serializer = new XmlSerializer(typeof(FolderList));
using (StringReader reader = new StringReader("C:\\Folders.xml"))
{
FolderList folders = (FolderList)(serializer.Deserialize(reader));
}
Я следовал за одно предложение здесь, чтобы заполнить классы, которые у меня есть, и сериализуйте его, чтобы убедиться, что я получаю правильный формат для своих классов, и это все равно не помогает. Надеюсь, кто-то мог увидеть, чего я здесь не хватает.
Извините. Я пропустил «пространство». –
Попробуйте подтвердить подлинность xml – bdn02
Я сделал. Я не нашел ошибки в XML. –