I need to create nested Xml with serialization. I have two Lists with data that have to generate nested xml filtered by Number.
The lists:
List<Person> personList = new List<Person>();
personList.Add(new Person{
Number = 1,
Name = "Dean"
});
personList.Add(new Person{
Number = 2,
Name = "Mike"
});
List<Home> homeList= new List<Home>();
homeList.Add(new Home{
Number = 2,
City= "Paris",
State = "France"
});
homeList.Add(new Home{
Number = 1,
City= "London",
State = "England"
});
So next i have class that i use for serialization:
public class CreateXML
{
[XElement(ElementName = "Home")]
List<Home> homeList= new List<Home>();
[XElement(ElementName = "Person")]
List<Person> personList = new List<Person>();
}
Method for creating XML:
public void Serialize(CreateXML list)
{
XmlSerializer serializer = new XmlSerializer(typeof(CreateXML));
using (TextWriter writer = new StreamWriter(@"D:\XmlTEST.txt"))
{
serializer.Serialize(writer, list);
}
}
Now it generates Xml file first with all Person data then with Home data.
Actual output:
<Person>
<number>1<number>
<name>Dean</name>
</Person>
<Person>
<number>2<number>
<name>Mike</name>
</Person>
<Home>
<number>1</number>
<city>London</city>
<state>England</state>
</Home>
<number>2</number>
<city>Paris</city>
<state>London</state>
</Home>
Wanted ouput:
<Person>
<number>1<number>
<name>Dean</name>
<Home>
<number>1</number>
<city>London</city>
<state>England</state>
</Home>
</Person>
<Person>
<number>2<number>
<name>Mike</name>
<Home>
<number>2</number>
<city>Paris</city>
<state>France</state>
</Home>
</Person>
Any suggestions?