Я могу читать XML-документ... почему я не могу в него писать?C#

Место общения программистов C#
Ответить
Anonymous
 Я могу читать XML-документ... почему я не могу в него писать?

Сообщение Anonymous »

Я пытаюсь написать простое .NET-приложение на C#, и мне бы хотелось, чтобы приложение выполняло функцию сохранения и загрузки из XML-файла. XML-файл с примерами данных выглядит следующим образом:

Код: Выделить всё


Minutes
30
3

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

Код: Выделить всё

SaveFile = new XmlDocument();
SaveFile.Load("fractionator-save.xml");
switch(SaveFile.DocumentElement.SelectSingleNode("/fractionator-save/output-type").InnerText)
{
case "Hours":
OutputType = Output.Hours;
break;
case "Minutes":
OutputType = Output.Minutes;
break;
case "Seconds":
OutputType = Output.Seconds;
break;
case "Frames":
OutputType = Output.Frames;
break;
}
— это перечисление, которое я создал для этого поля, а OutputType — это переменная этого перечисления.
Что странно, когда я пытаюсь написать новое значение в XML:

Код: Выделить всё

Key = Console.ReadKey();

switch(Key.KeyChar)
{
case '1':
SaveFile.DocumentElement.SelectSingleNode("/fractionator-save/output-type").InnerText = "Hours";
return Output.Hours;
case '2':
SaveFile.DocumentElement.SelectSingleNode("/fractionator-save/output-type").InnerText = "Minutes";
return Output.Minutes;
case '3':
SaveFile.DocumentElement.SelectSingleNode("/fractionator-save/output-type").InnerText = "Seconds";
return Output.Seconds;
case '4':
SaveFile.DocumentElement.SelectSingleNode("/fractionator-save/output-type").InnerText = "Frames";
return Output.Frames;
default:
InvalidInput = true;
Console.WriteLine("Error: Invalid input.");
break;
}
это вообще не меняет XML. Остальная часть фрагмента работает нормально; просто запись XML не работает.
Подумал, что это может быть проблема с областью действия (чтение и запись выполняются в отдельных методах одного и того же класса, а SaveFile статическая переменная в этом классе) Я попробовал передать эту переменную в качестве аргумента методу записи, но безрезультатно. Чтение документации также не помогло, так как там было просто сказано писать записи XML (странно это говорить!), как я уже делал. Я уверен, что я просто упускаю что-то, что должно быть очевидно, но это меня очень расстраивает.

Подробнее здесь: https://stackoverflow.com/questions/793 ... rite-to-it
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»