using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Data.DataSetExtensions;
using System.Xml.Serialization;
public static void Main()
string input = @"<FOLDERS Name=""XXXXXXX""><FOLDER Date=""12/15/2015 15:25:04"" ByUser="""" Name=""some folders name"" Type="""" MemberOf=""""><![CDATA[FOLDERID111]]><VISUALFOLDER Date=""02/16/2016 14:25:00"" ByUser="""" Name=""some folders name"" Type="""" StartView=""UNKNOWN"" ScreenOffset=""0""/><TABSHEET Date=""02/16/2016 14:25:00"" Name=""Fields"" Type=""IdxFields""><![CDATA[TABSHEETID521]]><VISUALTABSHEET Date=""02/16/2016 14:25:00"" Name=""Fields"" Type=""IdxFields""/><INDEXFIELD Date=""02/16/2016 14:25:00"" Name=""DocuName""><![CDATA[Something thats not the documents name]]><VISUALINDEXFIELD Date=""02/16/2016 14:25:00"" Name=""DocuName""/></INDEXFIELD><INDEXFIELD Date=""02/16/2016 14:25:00"" Name=""DocuDate""><![CDATA[09.12.2015]]><VISUALINDEXFIELD Date=""02/16/2016 14:25:00"" Name=""DocuDate""/></INDEXFIELD><INDEXFIELD Date=""02/16/2016 14:25:00"" Name=""Object""><![CDATA[OBJECT1]]><VISUALINDEXFIELD Date=""02/16/2016 14:25:00"" Name=""Object""/></INDEXFIELD><INDEXFIELD Date=""02/16/2016 14:25:00"" Name=""Tag""><![CDATA[LETTER]]><VISUALINDEXFIELD Date=""02/16/2016 14:25:00"" Name=""Tag""/></INDEXFIELD><INDEXFIELD Date=""02/16/2016 14:25:00"" Name=""User""><![CDATA[USER1]]><VISUALINDEXFIELD Date=""02/16/2016 14:25:00"" Name=""User""/></INDEXFIELD><INDEXFIELD Date=""02/16/2016 14:25:00"" Name=""Note""><VISUALINDEXFIELD Date=""02/16/2016 14:25:00"" Name=""Note""/></INDEXFIELD><INDEXFIELD Date=""02/16/2016 14:25:00"" Name=""Barcode""><VISUALINDEXFIELD Date=""02/16/2016 14:25:00"" Name=""Barcode""/></INDEXFIELD></TABSHEET><TABSHEET Date=""02/16/2016 14:25:00"" Name=""Documents"" Type=""Documents"" Data="""" SeqNo=""0"" Title="""" Password=""""><![CDATA[TABSHEETID522]]><VISUALTABSHEET Date=""02/16/2016 14:25:00"" Name=""Documents"" Type=""Documents""/><DOCUMENT Date=""02/16/2016 14:25:00"" Name=""Document"" Type="""" Data="""" FileName=""C:\ProgramData\Import\file1.pdf"" FileOffset=""5712054"" FileSize=""128509"" BinaryType=""PDF""><VISUALDOCUMENT Date=""02/16/2016 14:25:00"" Name=""Document"" Type="""" Height=""148"" Width=""105""/></DOCUMENT><DOCUMENT Date=""02/16/2016 14:25:00"" Name=""Document"" Type="""" Data="""" FileName=""C:\ProgramData\Import\file2.pdf"" FileOffset=""5840563"" FileSize=""129847"" BinaryType=""PDF""><VISUALDOCUMENT Date=""02/16/2016 14:25:00"" Name=""Document"" Type="""" Height=""148"" Width=""105""/></DOCUMENT></TABSHEET></FOLDER><FOLDER Date=""12/30/2015 15:25:04"" ByUser="""" Name=""some other folders name"" Type="""" MemberOf=""""><![CDATA[FOLDERID111]]><VISUALFOLDER Date=""02/16/2016 14:25:00"" ByUser="""" Name=""some other folders name"" Type="""" StartView=""UNKNOWN"" ScreenOffset=""0""/><TABSHEET Date=""02/16/2016 14:25:00"" Name=""Fields"" Type=""IdxFields""><![CDATA[TABSHEETID521]]><VISUALTABSHEET Date=""02/16/2016 14:25:00"" Name=""Fields"" Type=""IdxFields""/><INDEXFIELD Date=""02/16/2016 14:25:00"" Name=""DocuName""><![CDATA[Something thats not the documents name]]><VISUALINDEXFIELD Date=""02/16/2016 14:25:00"" Name=""DocuName""/></INDEXFIELD><INDEXFIELD Date=""02/16/2016 14:25:00"" Name=""DocuDate""><![CDATA[09.12.2015]]><VISUALINDEXFIELD Date=""02/16/2016 14:25:00"" Name=""DocuDate""/></INDEXFIELD><INDEXFIELD Date=""02/16/2016 14:25:00"" Name=""Object""><![CDATA[OBJECT1]]><VISUALINDEXFIELD Date=""02/16/2016 14:25:00"" Name=""Object""/></INDEXFIELD><INDEXFIELD Date=""02/16/2016 14:25:00"" Name=""Tag""><![CDATA[LETTER]]><VISUALINDEXFIELD Date=""02/16/2016 14:25:00"" Name=""Tag""/></INDEXFIELD><INDEXFIELD Date=""02/16/2016 14:25:00"" Name=""User""><![CDATA[USER1]]><VISUALINDEXFIELD Date=""02/16/2016 14:25:00"" Name=""User""/></INDEXFIELD><INDEXFIELD Date=""02/16/2016 14:25:00"" Name=""Note""><VISUALINDEXFIELD Date=""02/16/2016 14:25:00"" Name=""Note""/></INDEXFIELD><INDEXFIELD Date=""02/16/2016 14:25:00"" Name=""Barcode""><VISUALINDEXFIELD Date=""02/16/2016 14:25:00"" Name=""Barcode""/></INDEXFIELD></TABSHEET><TABSHEET Date=""02/16/2016 14:25:00"" Name=""Documents"" Type=""Documents"" Data="""" SeqNo=""0"" Title="""" Password=""""><![CDATA[TABSHEETID522]]><VISUALTABSHEET Date=""02/16/2016 14:25:00"" Name=""Documents"" Type=""Documents""/><DOCUMENT Date=""02/16/2016 14:25:00"" Name=""Document"" Type="""" Data="""" FileName=""C:\ProgramData\Import\file3.pdf"" FileOffset=""5712054"" FileSize=""128509"" BinaryType=""PDF""><VISUALDOCUMENT Date=""02/16/2016 14:25:00"" Name=""Document"" Type="""" Height=""148"" Width=""105""/></DOCUMENT></TABSHEET></FOLDER></FOLDERS>";
XmlSerializer serializer = new XmlSerializer(typeof(FOLDERS));
var reader = new StringReader(input);
var folders = (FOLDERS)serializer.Deserialize(reader);
foreach (var folder in folders.FOLDER)
[XmlRoot(ElementName="VISUALFOLDER")]
public class VISUALFOLDER {
[XmlAttribute(AttributeName="Date")]
public string Date { get; set; }
[XmlAttribute(AttributeName="ByUser")]
public string ByUser { get; set; }
[XmlAttribute(AttributeName="Name")]
public string Name { get; set; }
[XmlAttribute(AttributeName="Type")]
public string Type { get; set; }
[XmlAttribute(AttributeName="StartView")]
public string StartView { get; set; }
[XmlAttribute(AttributeName="ScreenOffset")]
public string ScreenOffset { get; set; }
[XmlRoot(ElementName="VISUALTABSHEET")]
public class VISUALTABSHEET {
[XmlAttribute(AttributeName="Date")]
public string Date { get; set; }
[XmlAttribute(AttributeName="Name")]
public string Name { get; set; }
[XmlAttribute(AttributeName="Type")]
public string Type { get; set; }
[XmlRoot(ElementName="VISUALINDEXFIELD")]
public class VISUALINDEXFIELD {
[XmlAttribute(AttributeName="Date")]
public string Date { get; set; }
[XmlAttribute(AttributeName="Name")]
public string Name { get; set; }
[XmlRoot(ElementName="INDEXFIELD")]
public class INDEXFIELD {
[XmlElement(ElementName="VISUALINDEXFIELD")]
public VISUALINDEXFIELD VISUALINDEXFIELD { get; set; }
[XmlAttribute(AttributeName="Date")]
public string Date { get; set; }
[XmlAttribute(AttributeName="Name")]
public string Name { get; set; }
[XmlRoot(ElementName="TABSHEET")]
[XmlElement(ElementName="VISUALTABSHEET")]
public VISUALTABSHEET VISUALTABSHEET { get; set; }
[XmlElement(ElementName="INDEXFIELD")]
public List<INDEXFIELD> INDEXFIELD { get; set; }
[XmlAttribute(AttributeName="Date")]
public string Date { get; set; }
[XmlAttribute(AttributeName="Name")]
public string Name { get; set; }
[XmlAttribute(AttributeName="Type")]
public string Type { get; set; }
[XmlElement(ElementName="DOCUMENT")]
public List<DOCUMENT> DOCUMENT { get; set; }
[XmlAttribute(AttributeName="Data")]
public string Data { get; set; }
[XmlAttribute(AttributeName="SeqNo")]
public string SeqNo { get; set; }
[XmlAttribute(AttributeName="Title")]
public string Title { get; set; }
[XmlAttribute(AttributeName="Password")]
public string Password { get; set; }
[XmlRoot(ElementName="VISUALDOCUMENT")]
public class VISUALDOCUMENT {
[XmlAttribute(AttributeName="Date")]
public string Date { get; set; }
[XmlAttribute(AttributeName="Name")]
public string Name { get; set; }
[XmlAttribute(AttributeName="Type")]
public string Type { get; set; }
[XmlAttribute(AttributeName="Height")]
public string Height { get; set; }
[XmlAttribute(AttributeName="Width")]
public string Width { get; set; }
[XmlRoot(ElementName="DOCUMENT")]
[XmlElement(ElementName="VISUALDOCUMENT")]
public VISUALDOCUMENT VISUALDOCUMENT { get; set; }
[XmlAttribute(AttributeName="Date")]
public string Date { get; set; }
[XmlAttribute(AttributeName="Name")]
public string Name { get; set; }
[XmlAttribute(AttributeName="Type")]
public string Type { get; set; }
[XmlAttribute(AttributeName="Data")]
public string Data { get; set; }
[XmlAttribute(AttributeName="FileName")]
public string FileName { get; set; }
[XmlAttribute(AttributeName="FileOffset")]
public string FileOffset { get; set; }
[XmlAttribute(AttributeName="FileSize")]
public string FileSize { get; set; }
[XmlAttribute(AttributeName="BinaryType")]
public string BinaryType { get; set; }
[XmlRoot(ElementName="FOLDER")]
[XmlElement(ElementName="VISUALFOLDER")]
public VISUALFOLDER VISUALFOLDER { get; set; }
[XmlElement(ElementName="TABSHEET")]
public List<TABSHEET> TABSHEET { get; set; }
[XmlAttribute(AttributeName="Date")]
public string Date { get; set; }
[XmlAttribute(AttributeName="ByUser")]
public string ByUser { get; set; }
[XmlAttribute(AttributeName="Name")]
public string Name { get; set; }
[XmlAttribute(AttributeName="Type")]
public string Type { get; set; }
[XmlAttribute(AttributeName="MemberOf")]
public string MemberOf { get; set; }
[XmlRoot(ElementName="FOLDERS")]
[XmlElement(ElementName="FOLDER")]
public List<FOLDER> FOLDER { get; set; }
[XmlAttribute(AttributeName="Name")]
public string Name { get; set; }