如何将List 序列化为XML?

如何转换此列表:

List Branches = new List(); Branches.Add(1); Branches.Add(2); Branches.Add(3); 

进入这个XML:

      

您可以使用LINQ尝试此操作:

 List Branches = new List(); Branches.Add(1); Branches.Add(2); Branches.Add(3); XElement xmlElements = new XElement("Branches", Branches.Select(i => new XElement("branch", i))); System.Console.Write(xmlElements); System.Console.Read(); 

输出:

  1 2 3  

忘了提一下:你需要包含using System.Xml.Linq; 命名空间。

编辑:

XElement xmlElements = new XElement("Branches", Branches.Select(i => new XElement("branch", new XAttribute("id", i))));

输出:

      

您可以使用Linq-to-XML

 List Branches = new List(); Branches.Add(1); Branches.Add(2); Branches.Add(3); var branchesXml = Branches.Select(i => new XElement("branch", new XAttribute("id", i))); var bodyXml = new XElement("Branches", branchesXml); System.Console.Write(bodyXml); 

或者创建适当的类结构并使用XML序列化 。

 [XmlType(Name = "branch")] public class Branch { [XmlAttribute(Name = "id")] public int Id { get; set; } } var branches = new List(); branches.Add(new Branch { Id = 1 }); branches.Add(new Branch { Id = 2 }); branches.Add(new Branch { Id = 3 }); // Define the root element to avoid ArrayOfBranch var serializer = new XmlSerializer(typeof(List), new XmlRootAttribute("Branches")); using(var stream = new StringWriter()) { serializer.Serialize(stream, branches); System.Console.Write(stream.ToString()); }