C#: заполнение файла XML - PullRequest
       24

C#: заполнение файла XML

0 голосов
/ 29 января 2020

, поэтому у меня уже есть XML -файл, в котором много элементов, но в них нет никакой ценности. Теперь я хочу вставить значение в этот уже существующий XML файл. Поэтому я создал XmlWriter и XmlReader. После этого я начал писать XMLDocument и скопировал все из Reader следующим образом:

xmlWriter.WriteStartDocument();
xmlWriter.WriteNode(reader, true);

Если я просто оставлю это так (с, конечно, xmlWriter.WriteEndDocument(); и xmlWriter.Close(); в конце), я будет иметь новый XML -файл, который является точной копией моего файла по умолчанию.

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

Если вам интересно, что я имею в виду под значениями, я имею в виду «TestUser», как показано ниже:

<User>TestUser</User>

I Я провел некоторое исследование на Inte rnet, как это сделать, но, к сожалению, я ничего не смог найти.

Спасибо за вашу помощь!

РЕДАКТИРОВАТЬ:

My XML выглядит примерно так (конечно, больше, это всего лишь небольшой пример):

<users>
    <user></user>
    <user></user>
</users>

И я хочу, чтобы это XML было скопировано с некоторыми добавленными значениями, например:

<users>
    <user>TestUser1</user>
    <user>TestUser2</user>
</users>

1 Ответ

0 голосов
/ 29 января 2020

, чтобы вы могли использовать этот класс здесь и открыть желаемый XML, который вам нужно иметь в виду, чтобы использовать объект и сохранить новый файл с другим путем или просто переименовать файл в _Serialize (string filePath, T object) )

    public static StreamReader _StreamReader(string filePath)
    {
        try
        {
            if (string.IsNullOrEmpty(filePath))
            {
                throw new InvalidOperationException();
            }

            return new StreamReader(filePath);
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    public static void _Serialize<T>(string filePath, T object)
    {
        try
        {
            var xmlSerializer = new XmlSerializer(object.GetType());
            using (FileStream fileStream = new FileStream(filePath, FileMode.Create))
            {
                xmlSerializer.Serialize(fileStream, object);
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }

    public static T _UnSerialize<T>(StreamReader streamReader)
    {
        try
        {
            T deserializedObject = default(T);
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
            deserializedObject = (T)xmlSerializer.Deserialize(streamReader);
            streamReader.Dispose();
            return deserializedObject;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
...