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>
使用上面的例子可以为每个&#34;实例&#34;创建一个对象。 XML文件中的节点?在这个例子中,将有2个对象的实例&#34; xmlvalues&#34;但理论上可能会有更多。有一个简单的方法吗?
答案 0 :(得分:2)
使用列表
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();
答案 1 :(得分:0)
一种方法,你必须调整你的xpath:
using System.Xml.XPath;
using System.Xml.Linq;
foreach (XElement el in xdoc.Root.XPathSelectElements ( "instance" ) ) {
//do something with el
}
这比.Descendants()更快,因为它不必检查所有节点,只检查在x路径上找到的节点(&#34;实例&#34;在上述情况下)