One-Liner для десериализации строк XML - PullRequest
1 голос
/ 15 июня 2011

После моего вопроса о сериализации System.Array в строку XML, я хотел бы спросить, знает ли кто-нибудь инструкцию однострочный , чтобы перейти наоборот, то есть для преобразования строки XML, такой как

<Root><Element>a</Element><Element>b</Element></Root>

до new string[] { "a", "b" } объекта. Я подозреваю, что использования String.Split было бы достаточно для случая, но это не кажется самым элегантным решением, не так ли?

Ответы [ 2 ]

3 голосов
/ 15 июня 2011

Как насчет

var data = XElement.Parse("<Root><Element>a</Element><Element>b</Element></Root>").Elements("Element").Select(e=>e.Value).ToArray();

Я бы посоветовал сделать это более чем одной строкой для удобства чтения.

2 голосов
/ 15 июня 2011
string test = "<Root><Element>a</Element><Element>b</Element></Root>";
var results = XElement.Parse(test).Elements("Element").Select(e => e.Value).ToArray();
  1. Разобрать строку
  2. Выберите элементы под названием «Элемент»
  3. Выберите значение в элементах
  4. Преобразовать в массив.
  5. (Опционально) Отформатируйте его так, чтобы он был одной строкой.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...