【发布时间】:2015-08-27 09:03:39
【问题描述】:
我正在尝试编写一个 LINQ to Objects/XML 查询来创建对象。一世
有一个具有IList 属性SomeModelClass 的类。 SomeModelClass 也有几个 IList 需要从 XML 中填充。
这是我第一次尝试查询多个级别的嵌套 XML,但我不确定如何继续。
目前代码无法编译,因为select new 似乎无法嵌套。我如何才能真正查询嵌套的 XML 以创建一个对象,该对象具有一个对象列表,该对象列表也具有一个字符串列表?
我已经展示了我尝试过的代码。
我有这样的课:
public class MyClass
{
public string Name { get; set }
public IList<SomeModelClass> ModelList { get; set; }
}
这是我的模型类:
public class SomeModelClass
{
public IList<string> MyList1 { get; set; }
}
XML 如下所示:
<someXml>
<section name="test">
<myModelClassXml>
<someValue value="string1" />
<someValue value="string2" />
<someValue value="string3" />
</myModelClassXml>
</section>
<section name="test2">
<myModelClassXml>
<someValue value="string1" />
</myModelClassXml>
</section>
</someXml>
我目前的代码:
var query = (from r in xdoc.Descendants("someXml").Descendants("section")
select new MyClass()
{
Name = r.Attribute("name").Value,
//Make list of SomeModelClass AND ALSO populate SomeModelClass's lists
select new SomeModelClass
{
MyList1 = What needs to be here?
}
});
【问题讨论】:
标签: c# xml linq linq-to-xml linq-to-objects