使用 C# 生成 xml 文件

Generate xml file using c#

我想在 C# 中使用序列化生成一个 xml 文件。我是这种语言的新手。所以请大家指点。

我的 xml 文件的内容为-

<Employees>
    <Employee>
      <Emp id="1" name="Ajay" salary="20000"></Emp>
      <Emp id="2" name="Vinay" salary="25000"></Emp>
      <Emp id="3" name="Jay" salary="23000"></Emp>
    </Employee>
</Employees>

定义 POCO 匹配您预期的 xml 文本(下面的示例)

public class Employees
{
    [XmlArray("Employee")]
    [XmlArrayItem(typeof(Emp), ElementName="Emp")]
    public Emp[] Emps { get; set; }
}

public class Emp
{
    [XmlAttribute("id")]
    public int Id { get; set; }
    [XmlAttribute("name")]
    public string Name { get; set; }
    [XmlAttribute("salary")]
    public string Salary { get; set; }
}

然后构造对象,使用XmlSerialier序列化

public static void SerializeXml()
{
    Employees emps = new Employees()
    {
        Emps = new Emp[]
        {
            new Emp
            {
                Id = 1,
                Name = "Ajay",
                Salary = "23000",
            }
        }
    };
    
    XmlSerializer s = new XmlSerializer(typeof(Employees));
    
    XmlSerializerNamespaces namespaces = new XmlSerializerNamespaces();
    namespaces.Add(string.Empty, string.Empty); 
    
    XmlWriterSettings settings = new XmlWriterSettings
    {
        Indent = true,
        OmitXmlDeclaration = true
    };
    StringBuilder sb = new StringBuilder();
    TextWriter w = new StringWriter(sb);
    using (var writer = XmlWriter.Create(w, settings))
    {
        s.Serialize(writer, emps, namespaces);
    }       
    
    Console.WriteLine(sb.ToString());
} 

样本fiddlehttps://dotnetfiddle.net/c4nMwr