使用XElement将此XML解析为数组

时间:2016-11-07 21:19:40

标签: c# .net xml linq linq-to-xml

我们说我有一个Person类:

public class Person
{
    public string Name { get; set; }
}

如何解析包含

的XML文件
<person>
    <name>a</name>
</person>
<person>
    <name>b</name>
</person>

成两个Person的数组?

这是此问题的变体:Specific parsing XML into an array

唯一的区别是整个XML没有<people></people><person>立即开始。

1 个答案:

答案 0 :(得分:1)

试试这个

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string xml = 
                "<person>" +
                    "<name>a</name>" +
                "</person>" +
                "<person>" +
                    "<name>b</name>" +
                "</person>";
            xml = "<Root>" + xml + "</Root>";

            XDocument doc = XDocument.Parse(xml);

            List<Person> people = doc.Descendants("person").Select(x => new Person() {
                Name = (string)x.Element("name")
            }).ToList();
        }
    }
    public class Person
    {
        public string Name { get; set; }
    }
}