从XML创建对象

时间:2009-10-21 16:13:51

标签: xml linq

我有以下XML在多个位置使用名称“Part”。我只想访问名为“Part”的第一级元素,而不是我的Linq表达式也可以获取名为“Part”的子元素。我用下面的Linq来完成我想要的但看起来有点乱。可以改进吗?

<Stuff>
  <Parts>
   <Part>
     <A>
       <Part>
         <B>10</B>
       </Part>
    </A>
 </Part>
   <Part>
     <A>
       <Part>
         <B>10</B>
       </Part>
     </A>
  </Part>
 </Parts>
</Stuff>


var pbp = data.Descendants("Part")
            .Where(b => b.Parent == data.Element("Parts"))
            .Select(b => (Part)Deserialise(b.ToString(), typeof(Part)));

return pbp.ToList();

1 个答案:

答案 0 :(得分:1)

您更喜欢这种形式吗?

var pbp = from p in data.Element("Parts").Elements("Part")
          select (Part)Deserialise(p.ToString(), typeof(Part));
return pbp.ToList();