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