问题描述
<?xml version="1.0" encoding="utf-8" ?> <reportgroups> <Reportgroup id="1" name="reportGroup1"> <report id="1" name="report1" isSheduled="false"></report> <report id="2" name="report2" isSheduled="false"></report> <report id="3" name="report3" isSheduled="false"></report> </Reportgroup> <Reportgroup id="2" name="reportGrouop2"> <report id="4" name="report4" isSheduled="false"></report> </Reportgroup> <Reportgroup id="3" name="reportGrouop3"></Reportgroup> </reportgroups>
我有课
public class Reportgroup { public int id { get; set; } public string name { get; set; } } public class Report { public int id { get; set; } public string name { get; set; } public bool isSheduled { get; set; } }
如何使用 linq 将此 xml 读取到 Reportgroup 对象列表中.它的语法是什么.报告组列表中的每个项目都应包含报告列表
推荐答案
您的 Reportgroup 类似乎缺少与 Report 关联的方法.无论如何,您可以这样阅读它(对您的课程进行一些调整):
public class ReportGroup // CamelCase!!! { public int Id { get; set; } public string Name { get; set; } public List<Report> Reports { get; set; } // need to hold the associated reports } public class Report { public int Id { get; set; } public string Name { get; set; } public bool IsSheduled { get; set; } } var doc = XDocument.Load("path/to/file.xml"); var reportGroups = doc.Element("reportgroups") .Elements("Reportgroup") .Select(rg => new ReportGroup { Id = (int)rg.Attribute("id"), Name = (string)rg.Attribute("name"), Reports = rg.Elements("report") .Select(r => new Report { Id = (int)r.Attribute("id"), Name = (string)r.Attribute("name"), IsScheduled = (bool)r.Attribute("isScheduled"), }).ToList(); }).ToList();
问题描述
<?xml version="1.0" encoding="utf-8" ?> <reportgroups> <Reportgroup id="1" name="reportGroup1"> <report id="1" name="report1" isSheduled="false"></report> <report id="2" name="report2" isSheduled="false"></report> <report id="3" name="report3" isSheduled="false"></report> </Reportgroup> <Reportgroup id="2" name="reportGrouop2"> <report id="4" name="report4" isSheduled="false"></report> </Reportgroup> <Reportgroup id="3" name="reportGrouop3"></Reportgroup> </reportgroups>
and i have classes
public class Reportgroup { public int id { get; set; } public string name { get; set; } } public class Report { public int id { get; set; } public string name { get; set; } public bool isSheduled { get; set; } }
how can i read this xml to a list of Reportgroup object using linq. What is its syntax. Each item in List of Reportgroup should contain list of Report
推荐答案
Your Reportgroup class seems to be missing a way to associate with the Reports. Anyway, you can read it like this (with a few tweaks to your classes):
public class ReportGroup // CamelCase!!! { public int Id { get; set; } public string Name { get; set; } public List<Report> Reports { get; set; } // need to hold the associated reports } public class Report { public int Id { get; set; } public string Name { get; set; } public bool IsSheduled { get; set; } } var doc = XDocument.Load("path/to/file.xml"); var reportGroups = doc.Element("reportgroups") .Elements("Reportgroup") .Select(rg => new ReportGroup { Id = (int)rg.Attribute("id"), Name = (string)rg.Attribute("name"), Reports = rg.Elements("report") .Select(r => new Report { Id = (int)r.Attribute("id"), Name = (string)r.Attribute("name"), IsScheduled = (bool)r.Attribute("isScheduled"), }).ToList(); }).ToList();
相关问答
相关标签/搜索