zoukankan      html  css  js  c++  java
  • 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;
            }
    
    
        }
    }
  • 相关阅读:
    php弱类型比较
    sql手注例子
    XFF等使用burp伪造请求
    XXE任意文件读取(当xml解析内容有输出时)
    本地文件包含LFI
    Java的访问修饰符的作用范围
    如何用“与”,“或”,“非” 实现 “异或”运算?
    windows下安装rabbitMQ教程(实战可用)
    注解@RequestParam与@RequestBody,@PathVariable的使用介绍
    maven install命令的用处(项目A依赖项目B,项目B发生修改,此时如果项目A打包引用修改后的B项目场景)
  • 原文地址:https://www.cnblogs.com/fps2tao/p/14666761.html
Copyright © 2011-2022 走看看