如何使用linq从xml文件中的单个项目创建对象?

时间:2012-01-05 18:14:32

标签: c# xml linq linq-to-xml

基本上我在xml文件中有一个元素,我存储了应用程序的设置。这个元素反映了我构建的类。我正在尝试使用LINQ做的是选择单个元素,然后将存储在该元素中的值存储到我的类的一个实例中。

现在我单独选择元素,然后将该元素的值存储到不同的属性中。当然,这变成了大约六个单独的陈述。是否可以在一个声明中执行此操作?

2 个答案:

答案 0 :(得分:2)

如果你能展示你的XML会更好,但你可以从下面的代码中得到一般的想法

XDocument doc = //load xml document here

var instance = from item in doc.Descendants("ElementName")
                   select new YourClass()
                              {
                                  //fill the properties using item 
                              };

答案 1 :(得分:2)

您可以使用LINQ to XML,例如

var document = XDocument.Load("myxml.xml");
document.Element("rootElement").Element("myElement").Select(e => 
  new MySettingsClass
  {
    MyProperty = e.Attribute("myattribute").Value,
    MyOtherProperty = e.Attribute("myotherattribute").Value 
  });

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/bb387098.aspx