1

如果我有一个简单的 xml 文件,例如

<person>
  <age>46</age>
  <name>Max</name>
</person>

我可以使用 XDocument 和 LinqToSQL 将数据读入我的结构:

var res = from item in xdoc.Descendants("person")
          select new Person
          {
              Age = item.Element("age").Value,
              Name = item.Element("name").Value,
          };

但是现在我有不止一个元素,例如

<person>
  <age>46</age>
  <name>Max</name>
  <phone>123</phone>
  <phone>456</phone>
</person>

我现在如何削减文档并将数据读入我的结构?因为现在我需要一个字符串列表,但是如何获取每条电话线并将其添加到我的列表中?

谢谢。

4

1 回答 1

4

你只是在寻找:

var res = from item in xdoc.Descendants("person")
          select new Person
          {
              Age = item.Element("age").Value,
              Name = item.Element("name").Value,
              Phones = item.Elements("phone").Select(x => x.Value).ToList()
          };

我会制作Age一个整数(或者理想情况下将出生日期表示为a DateTime,但是......),并且可能使用显式转换而不是.Value属性:

var res = from item in xdoc.Descendants("person")
          select new Person
          {
              Age = (int) item.Element("age"),
              Name = (string) item.Element("name"),
              Phones = item.Elements("phone").Select(x => (string) x).ToList()
          };

所有这些都假设您的Person类具有类型或类似的可写Phones属性。IList<string>

于 2013-06-22T08:53:24.580 回答