C# 将Xdocument解析为由对象组成的对象
这是我第一次使用,所以可能我有一个愚蠢的问题。 我想从XML解析两种类型的对象。第一个很简单:C# 将Xdocument解析为由对象组成的对象,c#,xml,linq,linq-to-xml,C#,Xml,Linq,Linq To Xml,这是我第一次使用,所以可能我有一个愚蠢的问题。 我想从XML解析两种类型的对象。第一个很简单: <MyObjects> <MyObjectType1> <id>1</id> <name>EasyObject1</name> <param1>1.05</param1> <param2>1.25</param2> </MyObjec
<MyObjects>
<MyObjectType1>
<id>1</id>
<name>EasyObject1</name>
<param1>1.05</param1>
<param2>1.25</param2>
</MyObjectType1>
</MyObjects>
我使用以下函数进行解析:
private ObjectsModel LoadObjects4File(XDocument xdoc)
{
ObjectsModel loadedModels = new ObjectsModel();
//************************
var data = from query in xdoc.Descendants("MyObjectType1")
select new MyObjectType1Model
{
ID = (int)query.Element("id"),
Name = (string)query.Element("name"),
Param1= (float)query.Element("param1"),
Param2= (float)query.Element("param2")
};
for (int i = 0; i<data.ToList().Count; i++)
{
loadedModels .AddExistingPropeller(data.ElementAt(i));
}
return loadedModels ;
}
现在,我想对更复杂/复杂的XML做一些类似的事情,该XML包含关于对象的信息,该对象由属性和具有自己参数的对象组成。XML如下所示:
<Project>
<id>1</id>
<name>Project 1</name>
<dateCreated>1.1.2014</dateCreated>
<dateModified>2.1.2014</dateModified>
<Statistic>
<param1>123</param1>
<param2>123</param2>
</Statistic>
<Measurements>
<Measurement>
<id>1</id>
<name>Measurement 1</name>
<param1>10,10,5,5</param2>
<param2>1</param2>
<ObjectProperty1>
<id>1</id>
<name>Eq 1</name>
<param1>1.05</param1>
<param2>1.25</param#2>
</ObjectProperty1>
我想我需要对XDocument a进行递归扫描,一块一块地构建最终的项目对象,但我对此有点困惑。有人知道怎么做吗?任何想法都会被采纳…有一些工具可以用来从XML文件生成类文件。使用它。另一方面,在XML元素的名称中嵌入位置信息是一个糟糕的想法,如param1、param2等。。这使得处理文档变得比必要的更困难。如果您需要该信息,请将其作为元素的属性。您应该查看本教程:Re:Gabriel GM-这正是我想要的,非常感谢!!!