我的XML文件:

<myobject property1="foo" property2="bar">
    <property3>value1</property3>
    <property3>value1</property3>
    <property3>value1</property3>
</myobject>


我的C#代码:

List<MyObject> myObjectsInDB = (from f in xmlDoc.Descendants("myobject")
             select new MyObject()
             {
                    Property1 = f.Attribute("property1").Value,
                    Property2 = f.Attribute("property2").Value,
                    // Property3 = f.Element("property3").Value,
             }).ToList();


如果您在xml文件中注意到,则我需要将3个元素以及myobject元素及其属性一起转换为C#类。访问xml内部单个对象的最佳方法是什么。我知道我可能可以单独运行一个选择,但是我想知道是否有更好的方法访问它们,所以我不必两次都经历。

最佳答案

var result = xmlDoc.Descendants("myobject")
                .Select(m => new
                {
                    Property1 = m.Attribute("property1").Value,
                    Property2 = m.Attribute("property2").Value,
                    Property3 = m.Descendants("property3").Select(p3=>p3.Value).ToList()
                })
                .ToList();

10-07 22:37