gpt4 book ai didi

c# - xmlnodelist 到 C# 中的对象列表

转载 作者:太空宇宙 更新时间:2023-11-03 13:00:36 24 4
gpt4 key购买 nike

我正在使用 xmldocument 读取 xml 文件。我使用 xmlnodelist 提取了 xml 的节点。我现在想将 xmlnodelist 分配给对象列表“项目”。请让我知道我该怎么做。

<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;
}

最佳答案

正如我在评论中指出的那样,您可以在 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();

如果可以的话,我强烈建议您使用 LINQ to XML 而不是旧的 XmlDocument API(到现在为止,您真的应该能够... LINQ to XML 已经出现了很长的时间)。

当然,您可以用您当前的代码做到这一点:

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):

foreach (XmlElement p in listofProjests)
{
string id = p["Id"].InnerText;
string name = p["Name"].InnerText;
project.Add(new Project { Id = id, Name = name });
}

...但我真的不会。

关于c# - xmlnodelist 到 C# 中的对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32417302/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com