Try this
mainstring = "peter|100|john|200|sue|300";
string[] data = mainstring.Split('|');
XElement identity = new XElement("identity"));
for (int count = 0; count < data.Length; count += 2)
{
XElement elm = new XElement("id",
new XElement("name", data[count]),
new XElement("salary", data[count + 1]));
identity.Add(elm);
}
XElement xml = new XElement("xml", identity);
Output of "xml" variable XElement:
<xml>
<identity>
<id><name>peter</name><salary>100</salary></id>
<id><name>john</name><salary>200</salary></id>
<id><name>sue</name><salary>300</salary></id>
</identity>
</xml>
I have not compiled it or any test. Just right out of memory.
Good luck!