Редактирование данных в xml файле - C#
Формулировка задачи:
Доброго времени суток. Нужно редактировать данные, но я явно что-то делаю не так, так как порчу файл. В чём проблема?
Информацию нашёл тут, но как-то видно неправильно юзаю... В чём фишка?
Заранее спасибо.
Листинг программы
- <?xml version="1.0" encoding="utf-8"?>
- <root>
- <element id="">
- <localization lang="ru" tooltip="" text="" />
- <localization lang="en" tooltip="" text="" />
- </element>
- <element id="2">
- <localization lang="ru" tooltip="Куб внутри куба №2" text="" />
- </element>
- <element id="5">
- <localization lang="ru" tooltip="no tooltip" text="" />
- </element>
- <element id="7">
- <localization lang="ru" tooltip="сфера №2 в кубе №2" text="" />
- </element>
- <element id="6">
- <localization lang="ru" tooltip="сфера №1 в кубе №2" text="" />
- </element>
- <element id="3">
- <localization lang="ru" tooltip="куб №1" text="" />
- </element>
- <element id="4">
- <localization lang="ru" tooltip="Цилиндр" text="" />
- </element>
- <element id="1">
- <localization lang="ru" tooltip="Куб №2" text="" />
- </element>
- </root>
Листинг программы
- //Измененние элемента
- public void EditElementXmlToolTip(string ID, string toolTipText, string local/**, string Xmlpath **/)
- {
- var document = new XmlDocument();
- //Меняем значение атрибута <element number = "Меняем это значение"></element>
- XmlNodeList nodeList = document.GetElementsByTagName("element");
- foreach (XmlNode item in nodeList)
- {
- if (item.Attributes["id"].Value == ID) //Если <element id="Равен ...">
- {
- item.Attributes["lang"].Value = local;
- item.Attributes["tooltip"].Value = toolTipText;
- }
- }
- TooltipManager qwer = new TooltipManager ();
- SaveXml (qwer.XmlPath);
- }
Решение задачи: «Редактирование данных в xml файле»
textual
Листинг программы
- string xmlPath = @"c:\path\to\file.xml";
- string id="1", toolTipText="newTooltip", local = "newLang";
- XmlDocument xmlDoc = new XmlDocument();
- xmlDoc.Load(xmlPath);
- XmlNodeList localizationNodes = xmlDoc.SelectNodes("/root/element[@id='" + id + "']/localization");
- foreach (XmlElement localizationElement in localizationNodes)
- {
- localizationElement.Attributes["lang"].Value = local;
- localizationElement.Attributes["tooltip"].Value = toolTipText;
- }
- xmlDoc.Save(xmlPath);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д