是否可以从一个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"有两个实例,但理论上可能有更多实例。有简单的方法吗?
使用列表
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路径(在上面的情况下为"实例"(