Редактирование данных в xml файле - C#

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Нужно редактировать данные, но я явно что-то делаю не так, так как порчу файл. В чём проблема?
Листинг программы
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <root>
  3. <element id="">
  4. <localization lang="ru" tooltip="" text="" />
  5. <localization lang="en" tooltip="" text="" />
  6. </element>
  7. <element id="2">
  8. <localization lang="ru" tooltip="Куб внутри куба №2" text="" />
  9. </element>
  10. <element id="5">
  11. <localization lang="ru" tooltip="no tooltip" text="" />
  12. </element>
  13. <element id="7">
  14. <localization lang="ru" tooltip="сфера №2 в кубе №2" text="" />
  15. </element>
  16. <element id="6">
  17. <localization lang="ru" tooltip="сфера №1 в кубе №2" text="" />
  18. </element>
  19. <element id="3">
  20. <localization lang="ru" tooltip="куб №1" text="" />
  21. </element>
  22. <element id="4">
  23. <localization lang="ru" tooltip="Цилиндр" text="" />
  24. </element>
  25. <element id="1">
  26. <localization lang="ru" tooltip="Куб №2" text="" />
  27. </element>
  28. </root>
Листинг программы
  1. //Измененние элемента
  2. public void EditElementXmlToolTip(string ID, string toolTipText, string local/**, string Xmlpath **/)
  3. {
  4. var document = new XmlDocument();
  5. //Меняем значение атрибута <element number = "Меняем это значение"></element>
  6. XmlNodeList nodeList = document.GetElementsByTagName("element");
  7. foreach (XmlNode item in nodeList)
  8. {
  9. if (item.Attributes["id"].Value == ID) //Если <element id="Равен ...">
  10. {
  11. item.Attributes["lang"].Value = local;
  12. item.Attributes["tooltip"].Value = toolTipText;
  13. }
  14. }
  15. TooltipManager qwer = new TooltipManager ();
  16. SaveXml (qwer.XmlPath);
  17. }
Информацию нашёл тут, но как-то видно неправильно юзаю... В чём фишка? Заранее спасибо.

Решение задачи: «Редактирование данных в xml файле»

textual
Листинг программы
  1. string xmlPath = @"c:\path\to\file.xml";
  2. string id="1", toolTipText="newTooltip", local = "newLang";
  3.  
  4. XmlDocument xmlDoc = new XmlDocument();
  5. xmlDoc.Load(xmlPath);
  6. XmlNodeList localizationNodes = xmlDoc.SelectNodes("/root/element[@id='" + id + "']/localization");
  7. foreach (XmlElement localizationElement in localizationNodes)
  8. {
  9.     localizationElement.Attributes["lang"].Value = local;
  10.     localizationElement.Attributes["tooltip"].Value = toolTipText;
  11. }
  12. xmlDoc.Save(xmlPath);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы