繁体   English   中英

如何使用节点列表解析XML文件?

[英]How can I parse a XML file with a list of nodes?

如果我有一个简单的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>

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

谢谢。

你只是在寻找:

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设为整数(或者理想情况下将出生日期表示为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类具有IList<string>类型的可写Phones属性或类似的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM