從XML

2014-01-26 17 views
0

我有下面的XML創建2D自定義對象的數組,我想使用LINQ to獲取到一個數組:使用此代碼從XML

<doc> 
    <rows> 
    <cols> 
     <a>value</a> 
     <b>value</b> 
     <c>value</c> 
     <d>value</d> 
    </cols> 
    // multiple col elements 
</rows> 
// multiple rows elements, each has a set of col elements 
</doc> 
// single doc (root) element 

ObjectType[][] var = (
from e in XDocument.Load("Test.xml").Root.Elements() 
select (
from cols in e.Elements("cols") 
select new ObjectType 
{ 
a = (int)e.Element("a"), 
b = (int)e.Element("b"), 
c = (int)e.Element("c"), 
d = (int)e.Element("d") 
}).ToArray()).ToArray(); 

對象類型在哪裏是一個簡單的int結構:a,b,c和d。 XML看起來格式正確,但我不斷收到System.ArgumentNullException。從我在調試器中可以做出的事情來看,它並沒有超越第一個元素。

我的大腦在這個問題上如何讓我失望?

回答

2

它應該是這樣的

a = (int)cols.Element("a"), 
b = (int)cols.Element("b"), 
c = (int)cols.Element("c"), 
d = (int)cols.Element("d") 

使用的cols代替E,E是行。 還必須更改您的XML中的字值爲整數

+0

謝謝,薩法爾。是。 –