用于Xml字符串反序列化的One-Liner

时间:2011-06-15 12:06:29

标签: xml string .net-3.5

关于序列化System.Array到Xml字符串的my question之后,我想问一下是否有人知道一行指令反过来,也就是说,转换一个Xml字符串,如

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

new string[] { "a", "b" }个对象。我怀疑使用String.Split就足够了,但这似乎不是最优雅的解决方案,是吗?

2 个答案:

答案 0 :(得分:3)

怎么样

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

为了便于阅读,我建议将其设置为多行。

答案 1 :(得分:2)

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. (可选)将其格式化为一行。