[英]how to produce xml of list of objects using XElement in c#
我正在嘗試使用XElement將對象列表轉換為xml。 我的代碼如下
var employees = new List<Employee>();
employees.Add(new Employee("1", " Ali","",1000));
employees.Add(new Employee("2", "Billy","",1001));
var xml = new XElement("root");
xml.Add(new XElement("Employees"));
foreach (var employee in employees)
{
xml.Add(new XElement("employee", employee.Name));
};
我想要這樣的輸出
<root>
<Employees>
<employee>Ali</employee>
<employee>Billy</employee>
</Employees>
</root>
但是我得到的輸出是
<root>
<Employees/>
<employee>Ali</employee>
<employee>Billy</employee>
</root>
我嘗試將Employees對象移動到如下所示的循環內,但這無濟於事
foreach (var employee in employees)
{
xml.Add(new XElement("Employees", new XElement("employee", employee.Name)));
};
在循環中,應該在employee元素而不是root上調用Add()
:
var employees = new List<Employee>();
employees.Add(new Employee("1", " Ali","",1000));
employees.Add(new Employee("2", "Billy","",1001));
var xml = new XElement("root");
var employeesElement = new XElement("Employees");
foreach (var employee in employees)
{
employeesElement.Add(new XElement("employee", employee.Name));
}
xml.Add(employeesElement);
XElement
構造函數可以處理IEnumerable
因此您可以在創建父Employees
時立即添加employee
元素。 實際上,整個XML可以一次創建:
var xml = new XElement("root",
new XElement("Employees",
employees.Select(e => new XElement("employee", e.Name))
)
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.