Как внести изменения в XML файл - C#
Формулировка задачи:
Добрый день, не так давно начал изучать C# и возникла проблема при изменении xml файла
подскажите, как изменить мой xml файл
<?xml version="1.0" encoding="UTF-16"?> <head> <element number="1"> <category>Десерты</category> <name>Маффины с голубикой</name> <structure>Масло</structure> <preparation>1. Форму</preparation> <advice>Голубику можно</advice> <adress>десерт1.jpg</adress> </element> <element number="2"> <category>Десерты</category> <name>Пирог «Зебра»</name> <structure>Сахар</structure> <preparation>1. Яйца</preparation> <advice>шоколад</advice> <adress>десерт2.jpg</adress> </element> </head>
Решение задачи: «Как внести изменения в XML файл»
textual
Листинг программы
using System;
using System.Xml;
using System.Xml.XPath;
public class Example
{
public static void Main()
{
var document = new XmlDocument();
document.Load("C:/Users/Admin/Documents/Visual Studio 2012/Projects/ConsoleApplication2/XMLFile1.xml"); //тут наш xml файл, созданный через visual studio
//Меняем <>Это значение</>
XPathNavigator navigator = document.CreateNavigator();
foreach (XPathNavigator nav in navigator.Select("//element"))
{
string value = nav.GetAttribute("number", "");
if (value == "1") //Если атрибут в нашем случае number = 1
{
nav.MoveToFollowing("category", ""); //Перемещаем к нужному нам элементу, поскольку без данной команды он останется на <element number="1">И изменит этот текст</element>
nav.SetValue("Вкусные Десерты"); //Меняем <category>Это значение</category>
//Далее аналогично
nav.MoveToFollowing("advice", "");
nav.SetValue("Можно все");
}
}
//Меняем значение атрибута <element number = "Меняем это значение"></element>
XmlNodeList nodeList = document.GetElementsByTagName("element");
foreach (XmlNode item in nodeList)
{
if (item.Attributes["number"].Value == "2") //Если <element number="Равен двум">
{
item.Attributes["number"].Value = "7"; //Тогда меняем его на 7
}
}
document.Save("1234.xml");
Console.ReadKey();
}
}