Как внести изменения в XML файл - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день, не так давно начал изучать C# и возникла проблема при изменении 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 файл

Решение задачи: «Как внести изменения в 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();
    }
}

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


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

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

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