C#将XML数据保存读取删除

                //创建一个数据集,将其写入xml文件
                string name = "1.xml";
                System.Data.DataSet ds = new System.Data.DataSet("MESSAGE");
                System.Data.DataTable table = new System.Data.DataTable("FeedBack");
                ds.Tables.Add(table);
                table.Columns.Add("Model_Name", typeof(string));
                table.Columns.Add("PRJ_Name", typeof(string));
                table.Columns.Add("area_name", typeof(string));
                table.Columns.Add("Major_Name", typeof(string));
                System.Data.DataRow row = table.NewRow();
                row[0] = Model_Name;
                row[1] = PRJ_Name;
                row[2] = area_name;
                row[3] = Major_Name;
                ds.Tables["FeedBack"].Rows.Add(row);
                string path = ("E:/BIM_APP/BIM_APP_ModelInsp/" + name);
                ds.WriteXml(path);

这个方法只是针对临时存放的数据,多次向XML里面添加数据只会保存最后一次添加的数据,不是全部保存。

XML展示

<?xml version="1.0" standalone="yes"?>
<MESSAGE>
  <FeedBack>
    <Model_Name>name</Model_Name>
    <PRJ_Name>test</PRJ_Name>
    <area_name>test</area_name>
    <Major_Name>test</Major_Name>
  </FeedBack>
</MESSAGE>

读取XML数据

 XmlDocument doc = new XmlDocument();
            doc.Load("E:/BIM_APP/BIM_APP_ModelInsp/1.xml");
            XmlElement xmlRoot = doc.DocumentElement;
            foreach (XmlNode node in xmlRoot.ChildNodes)
            {
                label21.Text = node["Model_Name"].InnerText;
                label23.Text = node["PRJ_Name"].InnerText;
                label25.Text = node["area_name"].InnerText;
                label26.Text = node["Major_Name"].InnerText;
            }

删除方法

            XmlDocument xdoc = new XmlDocument();
            xdoc.Load("E:/BIM_APP/BIM_APP_ModelInsp/1.xml");
            //获得元素列表
            XmlElement xeXML = xdoc.DocumentElement;
            //获得父节点数量
            int nodeCount = xeXML.ChildNodes.Count;
            for (int i = 0; i < nodeCount; i++)
            {
                XmlNode root = xdoc.SelectSingleNode("MESSAGE");
                root.RemoveChild(xeXML.ChildNodes[i]);
                nodeCount = nodeCount - 1;
                xdoc.Save("E:/BIM_APP/BIM_APP_ModelInsp/1.xml");
            }
            nodeCount = nodeCount - 1;

这种删除方法建议用在删除全部的数据上,MESSAGE就是XML的节点,删除这个节点下面全部的数据。

读取到指定的节点

  XmlDocument xml = new XmlDocument();
            xml.Load(strUrl);
         
            var selectItemList = new List<Translation>();
            XDocument xdoc = XDocument.Load(strUrl);
            XElement xroot = xdoc.Root;//根节点
            var nodes = xroot.Descendants().FirstOrDefault(a => a.Name.LocalName == Nodes);//获取指定的XML节点

         
            foreach (XElement e in nodes.Elements("Param"))
            {
                selectItemList.Add(new Translation() { Text = e.Value, Value = e.FirstAttribute.Value, Name = e.LastAttribute.Value });
            }

  

  

原文地址:https://www.cnblogs.com/Angdybo/p/7943127.html