Редактирование данных в 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);

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


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

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

13   голосов , оценка 4.231 из 5
Похожие ответы