是否可以从一个XML文件创建多个对象

本文关键字:XML 一个 文件创建 对象 是否 | 更新日期: 2023-09-27 18:00:37

public class xmlvalues
{
    public int    id { get; set; }
    public string a { get; set; }
    public string b { get; set; }
    public string c { get; set; }
}
-- XML Example
<instance>
  <id>>1</id>
  <a>value 1A</a>
  <b>value 1B</b>
  <c>value 1C</c>
</instance>

<instance>
  <id>>2</id>
  <a>value 2A</a>
  <b>value 2B</b>
  <c>value 2C</c>
</instance>

使用上面的例子是否可以为XML文件中的每个"实例"节点创建一个对象?在这个例子中,对象"xmlvalues"有两个实例,但理论上可能有更多实例。有简单的方法吗?

是否可以从一个XML文件创建多个对象

使用列表

using System.Xml.Linq;
XDocument xdoc = XDocument.Load(@"...'path'document.xml");
List<xmlvalues> lists = (from lv1 in xdoc.Descendants("instance")
                       select new xmlvalues
                       {
                           id = lv1.Element("id"),
                           a= lv1.Element("a"),
                           b= lv1.Element("b"),
                           c= lv1.Element("c")
                       }).ToList();

一种方法是,您必须调整您的xpath:

using System.Xml.XPath;
using System.Xml.Linq;
foreach  (XElement el  in xdoc.Root.XPathSelectElements ( "instance" ) ) { 
     //do something with el
}

这比.Descendants((更快,因为它不必检查所有节点,只需检查在x路径(在上面的情况下为"实例"(

中找到的节点