C# xmlnodelist到C中的对象列表#
我正在使用xmldocument读取一个xml文件。 我使用xmlnodelist提取xml的节点。现在,我想将xmlnodelist分配给对象列表“Project”。请告诉我怎么做C# xmlnodelist到C中的对象列表#,c#,xml,asp.net-mvc,visual-studio,xml-parsing,C#,Xml,Asp.net Mvc,Visual Studio,Xml Parsing,我正在使用xmldocument读取一个xml文件。 我使用xmlnodelist提取xml的节点。现在,我想将xmlnodelist分配给对象列表“Project”。请告诉我怎么做 <Projects> <Project> <Id>1</Id> <Name>Fabric1</Name> </Project> <Project> <Id>2</I
<Projects>
<Project>
<Id>1</Id>
<Name>Fabric1</Name>
</Project>
<Project>
<Id>2</Id>
<Name>Fabric2</Name>
</Project>
</Projects>
Class :
public class Project
{
public string Id { get; set; }
public string Name { get; set; }
}
Code :
XmlDocument xdoc = new XmlDocument();
xdoc.Load(Server.MapPath("~/Content/abc.xml"));
XmlNodeList listofProjests = xdoc.SelectNodes("/Projects/Project");
var project = new List<Project>();
foreach (XmlNode p in listofProjests)
{
?? = p.SelectSingleNode("Id").InnerText;
?? = p.SelectSingleNode("Name").InnerText;
}
1.
Fabric1
2.
Fabric2
类别:
公共类项目
{
公共字符串Id{get;set;}
公共字符串名称{get;set;}
}
代码:
XmlDocument xdoc=新的XmlDocument();
Load(Server.MapPath(“~/Content/abc.xml”);
XmlNodeList ListofProjects=xdoc.SelectNodes(“/Projects/Project”);
var project=新列表();
foreach(项目列表中的xmlnodep)
{
??=p.SelectSingleNode(“Id”).InnerText;
??=p.SelectSingleNode(“名称”).InnerText;
}
正如我在一篇评论中所指出的,您可以在LINQ to XML中轻松实现这一点:
var projects = XDocument
.Load(Server.MapPath("~/Content/abc.xml"))
.Root
.Elements("Project")
.Select(p => new Project {
Id = (string) p.Element("Id"),
Name = (string) p.Element("Name")
})
.ToList();
如果可以的话,我强烈建议您使用LINQtoXML,而不是旧的XmlDocument
API(到目前为止,您真的应该能够…LINQtoXML已经存在很长时间了)
当然,您可以使用当前代码执行此操作:
foreach (XmlNode p in listofProjests)
{
string id = p.SelectSingleNode("Id").InnerText;
string name = p.SelectSingleNode("Name").InnerText;
project.Add(new Project { Id = id, Name = name });
}
或者更愉快一点(IMO):
。。。但我真的不会。您必须使用XmlDocument
?如果可以使用LINQtoXML(XDocument
etc),那么它就很简单了。
foreach (XmlElement p in listofProjests)
{
string id = p["Id"].InnerText;
string name = p["Name"].InnerText;
project.Add(new Project { Id = id, Name = name });
}