XML — манипуляции с XML

искусственный интеллект

Для управления XML-файлами необходимо обратиться к пространству имен: System.Xml;

  1. Добавить информацию в файл Xml

Добавьте файл Student.xml, информация о файле выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>

<Students>

Чжан Сан

Мужской

    <Age>19</Age>

  </Student>

Ли Си

Женщина

    <Age>20</Age>

  </Student>

    <Name>had</Name>

Женщина

    <Age>16</Age>

  </Student>

</Students>

Код:

  XmlDocument doc = new XmlDocument();

// Измените Student.xml в папке .exe, вам понадобится файл Student.xml в автономной программе, чтобы изменить его свойство «Копировать в выходной каталог» на «Копировать всегда»

            //string exePath = Application.StartupPath+"\\Student.xml";

            //doc.Load(exePath);

//Добавить информацию о студенте в файл Student.Xml в каталоге программы.

            String exePath = Application.StartupPath;

            int idx = exePath.LastIndexOf("bin");

            exePath = exePath.Substring(0, idx) + "Student.xml";

            doc.Load(exePath);

            XmlNode node = doc.CreateNode(XmlNodeType.Element, "Student", "");

            XmlAttribute attr = doc.CreateAttribute("class");

attr.Value = "Одна смена";

            node.Attributes.Append(attr);

            XmlNode name = doc.CreateNode(XmlNodeType.Element, "Name","");

            name.InnerText = "had";

            XmlNode gender = doc.CreateNode(XmlNodeType.Element, "Gender", "");

гендер.InnerText = "Женщина";

            XmlNode age = doc.CreateNode(XmlNodeType.Element, "Age", "");

            age.InnerText = "16";

            node.AppendChild(name);

            node.AppendChild(gender);

            node.AppendChild(age);

            doc["Students"].AppendChild(node);

            doc.Save(exePath);    

  1. Удалить данные в файле Xml

     XmlDocument doc = new XmlDocument();

// Измените Student.xml в папке .exe, вам понадобится файл Student.xml в автономной программе, чтобы изменить его свойство «Копировать в выходной каталог» на «Копировать всегда»

            //string exePath = Application.StartupPath+"\\Student.xml";

            //doc.Load(exePath);

//Добавить информацию о студенте в файл Student.Xml в каталоге программы.

            String exePath = Application.StartupPath;

            int idx = exePath.LastIndexOf("bin");

            exePath = exePath.Substring(0, idx) + "Student.xml";

            doc.Load(exePath);

            XmlNodeList list = doc["Students"].ChildNodes;

            foreach (XmlNode node in list)

            {

                foreach (XmlNode nd in node.ChildNodes)

                {

                    if (nd.InnerText == "had")

                    {

                        nd.ParentNode.ParentNode.RemoveChild(nd.ParentNode);

                        doc.Save(exePath);

                        return;

                    }

                }

            } 

  1. Измените данные в xml:

XmlDocument doc = new XmlDocument();

// Измените Student.xml в папке .exe, вам понадобится файл Student.xml в автономной программе, чтобы изменить его свойство «Копировать в выходной каталог» на «Копировать всегда»

            //string exePath = Application.StartupPath+"\\Student.xml";

            //doc.Load(exePath);

//Добавить информацию о студенте в файл Student.Xml в каталоге программы.

            String exePath = Application.StartupPath;

            int idx = exePath.LastIndexOf("bin");

            exePath = exePath.Substring(0, idx) + "Student.xml";

            doc.Load(exePath);

            XmlNodeList list = doc["Students"].ChildNodes;

            for (int i = 0; i < list.Count; i++)

            {

                XmlNode node = list[i];

Если (узел["Имя"].InnerText == "Ли Си")

                {

Узел["Пол"].InnerText = "Мужской";

                }

                foreach (XmlNode nd in node.ChildNodes)

                {

Если (nd.InnerText == "Чжан Сан")

                    {

nd.ParentNode["Пол"].InnerText = "Женщина";

                    }

                }

               

            }

            doc.Save(exePath);

  1. Прочитать все данные файла xml

XmlDocument doc = new XmlDocument();

// Измените Student.xml в папке .exe, вам понадобится файл Student.xml в автономной программе, чтобы изменить его свойство «Копировать в выходной каталог» на «Копировать всегда»

            //string exePath = Application.StartupPath+"\\Student.xml";

            //doc.Load(exePath);

//Добавить информацию о студенте в файл Student.Xml в каталоге программы.

            String exePath = Application.StartupPath;

            int idx = exePath.LastIndexOf("bin");

            exePath = exePath.Substring(0, idx) + "Student.xml";

            doc.Load(exePath);

            XmlNodeList list = doc["Students"].ChildNodes;

            foreach (XmlNode node in list)

            {

                String name = node["Name"].InnerText;

                string gender = node["Gender"].InnerText;

                string age = node["Age"].InnerText;

                listBox1.Items.Add(name + "," + age + "," + gender);

            }  

  1. Создайте файл Xml и добавьте в него данные

  private void button1_Click(object sender, EventArgs e)

        {

            CreateXmlFile();

        }

        public void CreateXmlFile()

        {

            String exePath = Application.StartupPath;

            int idx = exePath.LastIndexOf("bin");

            exePath = exePath.Substring(0, idx) + "aa.xml";

            XmlDocument xmlDoc = new XmlDocument();

//Создаем узел объявления типа

            XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", "");

            xmlDoc.AppendChild(node);

//создаем корневой узел

            XmlNode root = xmlDoc.CreateElement("User");

            xmlDoc.AppendChild(root);

            CreateNode(xmlDoc, root, "name", "xuwei");

            CreateNode(xmlDoc, root, "sex", "male");

            CreateNode(xmlDoc, root, "age", "25");           

            xmlDoc.Save(exePath);        

        }

        /// <summary>   

/// создаем узел

        /// </summary>   

/// XML-документ

/// родительский узел

/// имя узла

/// значение узла

        ///  

        public void CreateNode(XmlDocument xmlDoc, XmlNode parentNode, string name, string value)

        {

            XmlNode node = xmlDoc.CreateNode(XmlNodeType.Element, name, null);

            node.InnerText = value;

            parentNode.AppendChild(node);

        }