我有以下XML,我正在尝试使用LINQ进入数组:
<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();
其中ObjectType是一个简单的整数结构:a,b,c和d。 XML看起来格式正确,但我不断收到System.ArgumentNullException。从我在调试器中可以看出,它没有超越第一个元素。
我的大脑怎么会让我失败呢?
答案 0 :(得分: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中的单词值更改为整数