LINQ to XML - 选择XML到强类型对象

时间:2010-01-13 11:01:07

标签: c# xml linq

我有很多相关问题,但我会将问题分解为单独的帖子。

我的XML是<Person>.....<Skills><Skill>Resus<Skill></Skills></Person>

我的代码是:

var products1 = from prd in xDoc.Descendants("Person") 

select new BusinessEntityLayer.Personnel
{
  PayrollNo = (String)prd.Element("PayrollNumber"),
  FirstName = (String)prd.Element("Name"),
  LastName = (String)prd.Element("Surname"),
  StreetAddress = (String)prd.Element("StreetAddress"),
  Suburb = (String)prd.Element("Suburb"),
  HomePhone = (String)prd.Element("HomePhone"),
  MobilePhone = (String)prd.Element("MobilePhone"),
  PagerNumber = (String)prd.Element("PagerNumber"),
  Email = (String)prd.Element("Email"),
  RecordType = (String)prd.Element("RecordType"),
  Skills = (List<String>)prd.Element("Skills")

我的Personnel类是强类型的。这一切都与Skills系列完美结合。技能是List<Skill>,但我的代码不会编译错误 - XLInq.ElementGeneric.List ...我也不能使用String[](重构我的商务舱)同样的结果。

人们在这里使用什么策略?

1 个答案:

答案 0 :(得分:1)

我认为你应该可以做这样的事情:

Skills = prd.Descendants("Skill").Select(e => new Skill(e.Value)).ToList(),