• C#中对xml数据的读取和写入


    C#中对xml数据的读取和写入:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml.Linq;
    using System.Xml;
    using Newtonsoft.Json;
    
    namespace cashUI.test
    {
        class XmlTest
        {
    
            private static string localPath = System.Environment.CurrentDirectory + @"	est";
            /*
             * 写入xml
             */
            public void writeXml()
            {
                string path = localPath + "/test.xml";
    
                XmlDocument docment = new XmlDocument();
                XmlNode node = docment.AppendChild(docment.CreateXmlDeclaration("1.0", "UTF-8", null));
    
                XmlElement users = docment.CreateElement("Users");//一级节点
                XmlElement user = docment.CreateElement("User");//二级节点
    
                //创建三级节点
                XmlElement userName = docment.CreateElement("userName");
                userName.InnerText = "root111";
                XmlElement passWord = docment.CreateElement("passWord");
                passWord.InnerText = "123456";
    
                //三级节点加入到二级节点中
                user.AppendChild(userName);
                user.AppendChild(passWord);
    
                users.AppendChild(user);
                docment.AppendChild(users);
    
                docment.Save(path);
            }
    
            /*
             * 读取修改xml
             */
    
            public void readXml()
            {
                string path = localPath + "/test.xml";
                XmlDocument docment = new XmlDocument();
                docment.Load(path);
    
                XmlNode rootNode = docment.SelectSingleNode("Users");
                for (int i = 0; i < rootNode.ChildNodes.Count; i++) {
                    if (rootNode.ChildNodes[i].ChildNodes[0].InnerText == "root111") {
                        rootNode.ChildNodes[i].ChildNodes[0].InnerText = "root222";
                        rootNode.ChildNodes[i].ChildNodes[1].InnerText = "654321";
                    }
                }
                docment.Save(path);
    
            }
    
            /*
             * xml转成json
             * 把xml读取转成对象,把对象转json
             */
            public void xml2json() {
                //1.读取xml的数据
                string path = localPath + "/test.xml";
                XmlDocument docment = new XmlDocument();
                docment.Load(path);
                //string jsonText = JsonConvert.SerializeXmlNode(docment);
    
                //2.把读取出来的xml数据循环放进key->value字典类型中
                List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
                XmlNode rootNode = docment.SelectSingleNode("Users");
                for (int i = 0; i < rootNode.ChildNodes.Count; i++)
                {
                    Dictionary<string, string> dic = new Dictionary<string, string>();
                    dic.Add(rootNode.ChildNodes[i].ChildNodes[0].Name, rootNode.ChildNodes[i].ChildNodes[0].InnerText);
                    dic.Add(rootNode.ChildNodes[i].ChildNodes[1].Name, rootNode.ChildNodes[i].ChildNodes[1].InnerText);
                    list.Add(dic);
                }
                Dictionary<string, List<Dictionary<string, string>>> dict
                    = new Dictionary<string, List<Dictionary<string, string>>>();
                dict.Add("data", list);
    
                //3.把对象型的数据转json
                string jsonText = JsonConvert.SerializeObject(dict);
                Console.WriteLine(jsonText);
    
                //return jsonText;
            }
    
    
        }
    }
  • 相关阅读:
    1020 Tree Traversals
    1021 Deepest Root
    1022 Digital Library
    1023 Have Fun with Numbers
    1024 Palindromic Number
    1025 PAT Ranking
    1026 Table Tennis
    面向对象知识点梳理篇一
    面向对象知识点梳理篇二
    logging模块
  • 原文地址:https://www.cnblogs.com/fps2tao/p/14666761.html
Copyright © 2020-2023  润新知