Запись списка <object>в XML-файл с элементами и атрибутом - PullRequest
0 голосов
/ 23 января 2019

У меня есть следующий класс:

[XmlType("supervisor")]
public class Supervisor
{
   [XmlAttribute("id")]
    public string Id { set; get; }

    [XmlElement("Name")]
    public string Name { set; get; }

    [XmlElement("Contract")]
    public int Contracts { set; get; }

    [XmlElement("Volume")]
    public long Volume { set; get; }

    [XmlElement("Average")]
    public int Average { set; get; }
}

, который читает из файла XML:

 <digital-sales xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <supervisor id="1236674">
        <Name>Hiroki</Name>
        <Contract>11</Contract>
        <Volume>1036253</Volume>
        <Average>94205</Average>
    </supervisor>
    <supervisor id="123459">
        <Name>Ayumi</Name>
        <Contract>5</Contract>
        <Volume>626038</Volume>
        <Average>125208</Average>
    </supervisor> ...
 </digital-sales>

в коде я создаю List и обрабатываю его. Теперь я хочу, чтобы записать список в файл XML, сохраняя при этом та же структура XML. Как я могу это сделать?

Как использовать xml id для заполнения объекта класса?

1 Ответ

0 голосов
/ 23 января 2019

Вот код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Serialization;


namespace ConsoleApplication98
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            XmlReader reader = XmlReader.Create(FILENAME);
            XmlSerializer serializer = new XmlSerializer(typeof(DigitalSales));
            DigitalSales digitalSales = (DigitalSales)serializer.Deserialize(reader);

            reader.Close();

            XmlWriter writer = XmlWriter.Create(FILENAME);
            serializer.Serialize(writer, digitalSales);

        }
    }


    [XmlRoot("digital-sales")]
    public class DigitalSales
    {
        [XmlElement("supervisor")]
        public List<Supervisor> supervisor { get; set; }

    }
    [XmlRoot("supervisor")]
    public class Supervisor
    {
        [XmlAttribute("id")]
        public string Id { set; get; }

        [XmlElement("Name")]
        public string Name { set; get; }

        [XmlElement("Contract")]
        public int Contracts { set; get; }

        [XmlElement("Volume")]
        public long Volume { set; get; }

        [XmlElement("Average")]
        public int Average { set; get; }
    }


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...