2009-10-21 76 views
0

我有以下XML在多個位置使用名稱「部件」。我只想訪問名爲「Part」的第一級元素,而不是用於我的Linq表達式來拾取名爲「Part」的子元素。我已經使用了以下Linq來完成我想要的功能,但看起來有點麻煩。可以改進嗎?從XML創建對象

<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

你喜歡那種形式嗎?

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

謝謝,這工作正常。 – Retrocoder