Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Deserialize XML into Dictionary<string, string>

I have some XML;

<data>
  <name1>James</name1>
  <name2>John</name2>
  etc..
</data>

The name1, name2, etc could be anything, i want to be able to get this xml into a dictionary ideally, is this possible using the built in .net serialisation?

Thanks, James.

EDIT: Ideally i dont want to use linq. Is it possible to serialise the whole element array to a string? So i'd end up with a string object 'Data' that contained all the child element tags and data?

like image 394
Cadab Avatar asked Feb 09 '12 11:02

Cadab


1 Answers

No, but you can use Linq-to-Xml to do so:

XDocument.Load([file path, stream, whatever]).Descendants("data").Descendants()
    .ToDictionary(element => element.Name, element => element.Value)

UPDATE: As OP said in his edit, if there's no way to use Linq-to-Xml, then you¡ll need to customize XML serialization implementing IXmlSerializable (you might want to check this other Q&A: custom xml serialization ).

like image 101
Matías Fidemraizer Avatar answered Sep 29 '22 02:09

Matías Fidemraizer