Need a bit of help. I have an XML with the same elements nested within each other. I was able to create a C# class using the Convert XML String to Object question, pasting special the XML in a class. The thing is that code keeps creating class for each nested element. I just want one generic class for all the children elements.
Here's the sample XML:
<?xml version="1.0" encoding="utf-8" ?>
<CompanyFolders>
<company title="My Company">
<departments>
<department title="Retail Operations">
<folders>
<folder tite="Model Store"/>
<folder tite="Retail Ops Manual"/>
<folder tite="VM Guides & planograms"/>
<folder tite="About our Team"/>
</folders>
</department>
<department title="Buying">
<folders>
<folder tite="Gold Jewellery">
<folders>
<folder tite="Gold">
<folders>
<folder title="Color Range"/>
<folder title="Launch Packs"/>
<folder title="Grading"/>
<folder title="Herolines"/>
<folder title="Top Sellers"/>
<folder title="Launch & price Change Calendar"/>
</folders>
</folder>
<folder tite="Branded">
<folders>
<folder title="Color Range"/>
<folder title="Launch Packs"/>
<folder title="Grading"/>
<folder title="Herolines"/>
<folder title="Top Sellers"/>
<folder title="Launch & price Change Calendar"/>
</folders>
</folder>
</folders>
</folder>
<folder tite="Rings">
<folders>
<folder tite="Monthly Sales by store by diamond brand" />
<folder tite="Line lists & core ranges" />
<folder tite="Current Hero Lines" />
<folder tite="Diamond ambassador conference call details and agenda" />
</folders>
</folder>
</folders>
</department>
<department title="Property">
<folders>
<folder tite="Maintenance Forms"/>
<folder tite="Portal for reporting maintenance issues"/>
<folder tite="Security Advice"/>
<folder tite="Security Policy"/>
<folder tite="H&S Policy and awareness"/>
<folder tite="H&S Forms"/>
<folder tite="Insurance Documents"/>
<folder tite="Out of Emergencies Contact list"/>
</folders>
</department>
</departments>
</company>
</CompanyFolders>
And the class created:
namespace MyXML
{
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public partial class CompanyFolders
{
private CompanyFoldersCompany[] companyField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("company")]
public CompanyFoldersCompany[] company
{
get
{
return this.companyField;
}
set
{
this.companyField = value;
}
}
}
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class CompanyFoldersCompany
{
private CompanyFoldersCompanyDepartment[] departmentsField;
private string titleField;
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute("department", IsNullable = false)]
public CompanyFoldersCompanyDepartment[] departments
{
get
{
return this.departmentsField;
}
set
{
this.departmentsField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string title
{
get
{
return this.titleField;
}
set
{
this.titleField = value;
}
}
}
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class CompanyFoldersCompanyDepartment
{
private CompanyFoldersCompanyDepartmentFolder[] foldersField;
private string titleField;
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute("folder", IsNullable = false)]
public CompanyFoldersCompanyDepartmentFolder[] folders
{
get
{
return this.foldersField;
}
set
{
this.foldersField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string title
{
get
{
return this.titleField;
}
set
{
this.titleField = value;
}
}
}
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class CompanyFoldersCompanyDepartmentFolder
{
private CompanyFoldersCompanyDepartmentFolderFolder[] foldersField;
private string titeField;
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute("folder", IsNullable = false)]
public CompanyFoldersCompanyDepartmentFolderFolder[] folders
{
get
{
return this.foldersField;
}
set
{
this.foldersField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string tite
{
get
{
return this.titeField;
}
set
{
this.titeField = value;
}
}
}
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class CompanyFoldersCompanyDepartmentFolderFolder
{
private CompanyFoldersCompanyDepartmentFolderFolderFolder[] foldersField;
private string titeField;
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute("folder", IsNullable = false)]
public CompanyFoldersCompanyDepartmentFolderFolderFolder[] folders
{
get
{
return this.foldersField;
}
set
{
this.foldersField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string tite
{
get
{
return this.titeField;
}
set
{
this.titeField = value;
}
}
}
/// <remarks/>
[System.SerializableAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class CompanyFoldersCompanyDepartmentFolderFolderFolder
{
private string titleField;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string title
{
get
{
return this.titleField;
}
set
{
this.titleField = value;
}
}
}
}
So you can notice that CompanyFoldersCompanyDepartmentFolderFolder and CompanyFoldersCompanyDepartmentFolderFolderFolder are created for the inner Folders, however I just wanted a kind of recursive CompanyFoldersCompanyDepartmentFolder.
I appreciate the help.