2012-02-09 3 views
3

У меня есть XML;Deserialize XML в словарь <string, string>

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

name1, name2 и т.д. может быть что угодно, я хочу, чтобы иметь возможность получить этот XML в словарь в идеале, это возможно с помощью встроенного в .net сериализации?

Thanks, James.

EDIT: В идеале я не хочу использовать linq. Можно ли сериализовать весь массив элементов на строку? Итак, я получаю строковый объект «Данные», содержащий все теги дочерних элементов и данные?

+0

Это было бы десериализом ... – Guffa

ответ

7

Нет, но вы можете использовать Linq к Xml сделать так:

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

UPDATE: Как сказал О. П. в его редактирования, если нет никакой возможности использовать Linq-to Xml, тогда вам нужно будет настроить сериализацию XML, используя IXmlSerializable (возможно, вы захотите проверить эту другую Q & A: custom xml serialization).

1

Вы можете использовать LINQ to XML с помощью метода ToDictionary();

Смежные вопросы