Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
3 / 3 / 4
Регистрация: 17.06.2015
Сообщений: 30
.NET 3.x

Как изменить значения в xml файле

17.06.2015, 14:34. Показов 3638. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, впервые работаю с XML и прошу помочь. Суть проблемы - есть xml файл с содержанием
XML
1
2
3
4
5
<accounts>
  <account Id ="0" Summa="1000000"/>
  <account Id ="1" Summa="1000000"/>
  <account Id ="2" Summa="1000000"/>
</accounts>
И нужно определённому клиенту изменить значение суммы, что я и пытаюсь сделать
C#
1
2
3
4
5
6
7
8
9
10
XDocument XD = XDocument.Load("Account.xml");
                foreach (XElement XE in XD.Root.Elements())
                {
                    if (XE.Attribute("Id").Value.ToString() == Id.ToString())
                    {
                        XE.Attribute("Summa").SetValue(balance.ToString());
                        XD.Save("Account.xml");
                        break;
                    }
                }
Однако значения остаются прежними и в файл изменения не записываются, подскажите где я ошибся и как можно сделать по-другому? Заранее спасибо
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.06.2015, 14:34
Ответы с готовыми решениями:

Как изменить элемент в xml файле
XML &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;head&gt; &lt;item id=&quot;0&quot;&gt; &lt;name&gt;Name1&lt;/name&gt; &lt;surname&gt;Surname1&lt;/surname&gt; ...

Как в XML-файле изменить значения, находящиеся между заданными тегами?
Здравствуйте, подскажите, как изменить в файле *.xml значения в тэгах &lt;DocNumber&gt;...&lt;/DocNumber&gt; на 0. В предпоследнем тэге...

Как записывать и считывать значения в XML файле
Как записывать и считывать значения в XML файле. Будет использоваться как INI файлы раньше...

5
Заблокирован
17.06.2015, 14:42
Цитата Сообщение от zaqqq13 Посмотреть сообщение
Однако значения остаются прежними и в файл изменения не записываются, подскажите где я ошибся и как можно сделать по-другому?
C#
1
2
3
4
5
6
7
8
9
10
11
12
            string xml = @"<accounts>
  <account Id =""0"" Summa=""1000000""/>
  <account Id =""1"" Summa=""1000000""/>
  <account Id =""2"" Summa=""1000000""/>
</accounts>";
            XDocument xd = XDocument.Parse(xml);
            int id = 2;
            int summa = 5;
            xd.Root.Elements("account").Where(x => (int)x.Attribute("Id") == id)
                .ToList().ForEach(x => x.SetAttributeValue("Summa", summa));
            Console.WriteLine(xd);
            xd.Save("atr.xml");
XML
1
2
3
4
5
<accounts>
  <account Id="0" Summa="1000000" />
  <account Id="1" Summa="1000000" />
  <account Id="2" Summa="5" />
</accounts>
https://dotnetfiddle.net/umfzdU
1
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
17.06.2015, 14:50
А у вас вообще когда-нибудь выполняется условие в цикле? У меня вроде все нормально записывается вашим кодом.
0
3 / 3 / 4
Регистрация: 17.06.2015
Сообщений: 30
17.06.2015, 14:55  [ТС]
Условие выполняется, но наверное я где-то перемудрил, в xml я пытаюсь хранить данные, чтобы после выхода из программы они не сбрасывались, вот сам проект, может так будет проще разобраться
Вложения
Тип файла: rar BS.rar (69.8 Кб, 4 просмотров)
0
979 / 874 / 350
Регистрация: 26.04.2012
Сообщений: 2,647
17.06.2015, 15:31
Лучший ответ Сообщение было отмечено zaqqq13 как решение

Решение

У вас проблема вообще не в коде, а в том, что файл Account.xml прикреплен к проекту, и студия каждый раз затирает этот файл в папке Debug или Release... удалите его с проекта(но оставьте в папке Debug/Release) и все заработает
1
3 / 3 / 4
Регистрация: 17.06.2015
Сообщений: 30
17.06.2015, 15:35  [ТС]
Спасибо, сейчас буду пробовать)

Добавлено через 1 минуту
В самом деле заработало, я калич, извиняюсь за беспокойство
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.06.2015, 15:35
Помогаю со студенческими работами здесь

изменить значение в Xml файле
Доброго дня! задача не очень сложна: изменить 1значение в XML файле. код на 90% взял из хэлпа, так как это мой первый опыт работы с...

Изменить текст в XML файле
Суть следующая: есть файл Web.config, нужно как-то отредактировать его, чтоб там было &lt;configuration&gt; &lt;system.web&gt;...

Изменить значение в XML-файле
Есть XML файл. Через С# мне нужно его отредактировать &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;List&gt; ...

Не получается изменить значение атрибута в xml файле
XElement el = XElement.Load(&quot;Xml.xml&quot;); Main_form main_form = (Main_form)Owner; XDocument xDocument_load =...

Как обновить данные в файле xml на основе другого xml?
Добрый день! Мне необходимо разработать XSLT преобразование, которое будет обновлять данные в файле formats.xml (узлы name, shortName,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru