Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Converting array of objects to XML in C#

I know there's no built in converter to convert an array of objects to XML. Is there a quick rudimentary way to create a XML out of the array to help me do a LINQ to XML join between this one and another XML I have?

like image 871
Nick Avatar asked Oct 14 '11 17:10

Nick


2 Answers

You can use Linq to XML, it is really easy to map from your existing data structures to XML, i.e.:

int[] values = { 1, 2, 17, 8 };

XDocument doc = new XDocument();
doc.Add(new XElement("root", values.Select( x=> new XElement("item", x))));

produces the following output:

<root>
  <item>1</item>
  <item>2</item>
  <item>17</item>
  <item>8</item>
</root>
like image 80
BrokenGlass Avatar answered Sep 17 '22 17:09

BrokenGlass


You can always use XmlSerializer to transform a list of C# objects to XML document. The result of the serialization may be customized by using metadata attributes to designate, for example, root nodes or which class property is to be ignored etc... You will definitely need to apply the attributes to make the resulting XML conform as much as possible to your requirements.

Here is a basic tutorial on serializing an Object to XML:

like image 35
Anas Karkoukli Avatar answered Sep 20 '22 17:09

Anas Karkoukli