deserialize XML document to C# collection of objects -


i need point out wrong here. have searched , tried different ways load xml , not see have caused error:

system.invalidoperationexception: there error in xml document (1, 1). ---> system.xml.xmlexception: data @ root level invalid. line 1, position 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> 

here class definition:

[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; } 

here deserialize xml:

xmlserializer serializer = new xmlserializer(typeof(folderlist)); using (stringreader reader = new stringreader("c:\\folders.xml")) {     folderlist folders = (folderlist)(serializer.deserialize(reader)); } 

i have followed 1 suggestion on here populate classes have , serialize make sure proper format classes , still doesn't help. hopefully, see i'm missing here.

the problem use of stringreader in deserialization, should use streamreader:

using (streamreader reader = new streamreader("d:\\folders.xml")) {   folderlist folders = (folderlist)(serializer.deserialize(reader)); } 

so, result the serializer attempting deserialize "d:\folders.xml", rather data file op attempting deserialize.


Comments

Popular posts from this blog

authentication - Mongodb revoke acccess to connect test database -

r - Update two sets of radiobuttons reactively - shiny -

ios - Realm over CoreData should I use NSFetchedResultController or a Dictionary? -