Как внести изменения в 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(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д