c#xml-txt相互转换以及导入数据库

using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Serialization;

namespace Demo
{
    internal class Program
    {
             //创建连接
            SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();
            scsb.DataSource = "REOORO";
            scsb.UserID = "sa";
            scsb.Password = "19858184859";
            scsb.InitialCatalog = "library";
            
            //判断连接是否打开
            SqlConnection conn = new SqlConnection(scsb.ToString());//参数是连接数据库的字符串
            if(conn.State == System.Data.ConnectionState.Closed)
            {
            conn.Open();
            }

        static void Main(string[] args)
        {

            //xml to txt 并按成绩降序
            string str = File.ReadAllText("D:\研究生复试李泽平\xml\xml最终版\xml-txt\\Data.xml");
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(str);
            XmlNodeList nodes = xmlDoc.SelectNodes("grades//grade");
            List<Grade> grades = new List<Grade>();
            foreach (XmlNode node in nodes)
            {
                grades.Add(new Grade()
                {
                    Id = node.SelectSingleNode("id").InnerText,
                    Name = node.SelectSingleNode("name").InnerText,
                    Course = node.SelectSingleNode("course").InnerText,
                    Score = int.Parse(node.SelectSingleNode("score").InnerText),
                });
            }

            List<Grade> result = grades.OrderByDescending(x => x.Score).ToList();
            StringBuilder sb = new StringBuilder();
            foreach (Grade grade in result) 
            {
                sb.Append($"{grade.Id},{grade.Name},{grade.Course},{grade.Score}\n");
            }

            File.WriteAllText("D:\研究生复试李泽平\xml\xml最终版\xml-txt\\Data.txt", sb.ToString());

            
            //SqlConnection sqlConnection = new SqlConnection();
            //sqlConnection.ConnectionString = connString;
            //sqlConnection.Open();

            生成插入的sql语句
            //StringBuilder sql = new StringBuilder();
            //sql.Append("Insert Into grade values ");
            //foreach (Grade grade in result)
            //{
            //    sql.Append($"('{grade.Id}','{grade.Name}','{grade.Course}',{grade.Score}),");
            //}

            //string sqlTxt = sql.ToString();
            //sqlTxt = sqlTxt.Substring(0, sqlTxt.Length - 1);
            //sqlTxt = sqlTxt + ";";

            //SqlCommand sqlCommand = new SqlCommand(sqlTxt, sqlConnection);
            //var count = sqlCommand.ExecuteNonQuery();
            //sqlConnection.Close();
            

            //TXT转XML
            string[] txts = File.ReadAllLines("D:\研究生复试李泽平\xml\xml最终版\xml-txt\\Data.txt");
            List<Grade> grades1 = new List<Grade>();
            foreach (string txt in txts) 
            {
                string[] datas = txt.Split(",");
                grades1.Add(new Grade()
                {
                    Id = datas[0],
                    Name = datas[1],
                    Course = datas[2],
                    Score = int.Parse(datas[3]),
                });
            }

            MemoryStream memoryStream = new MemoryStream();
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<Grade>),new XmlRootAttribute("Grades"));
            xmlSerializer.Serialize(memoryStream, grades1);
            memoryStream.Position = 0;
            StreamReader sr = new StreamReader(memoryStream);
            string data =sr.ReadToEnd();
            memoryStream.Close();
            File.WriteAllText("C:\\Users\\Bruce Qiu\\Desktop\\Data1.xml", data);
        }
    }

    public class Grade
    {
        public string Id { get; set; }
        public string Name { get; set; }
        public string Course { get; set; }
        public int Score { get; set; }
    }
}
<?xml version="1.0"?>
<grades>
    <grade>
       <id>2019001</id>
       <name>张三</name>
       <course>机器学习</course>
       <score>85</score>
    </grade>
    <grade>
       <id>2019002</id>
       <name>李四</name>
       <course>操作系统</course>
       <score>90</score>
    </grade>
 <grade>
       <id>2019003</id>
       <name>王五</name>
       <course>数据结构</course>
       <score>95</score>
    </grade>
 <grade>
       <id>2019003</id>
       <name>刘六</name>
       <course>数据结构</course>
       <score>68</score>
    </grade>
 <grade>
       <id>2019003</id>
       <name>初七</name>
       <course>数据结构</course>
       <score>74</score>
    </grade>
 <grade>
       <id>2019003</id>
       <name>朱八</name>
       <course>数据结构</course>
       <score>100</score>
    </grade>
 <grade>
       <id>2019003</id>
       <name>李九</name>
       <course>数据结构</course>
       <score>69</score>
    </grade>
</grades>
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Data;
using System.Data.SqlClient;
using static System.Net.Mime.MediaTypeNames;
using System.Diagnostics;
using System.Xml.Serialization;

namespace xml_txt
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //xml转txt
            //1.导入xml文件
            string str = File.ReadAllText("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data.xml");
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(str);
            XmlNodeList nodes = xmlDoc.SelectNodes("grades//grade");
            List<Grade> grades = new List<Grade>();
            foreach (XmlNode node in nodes)
            {
                grades.Add(new Grade()
                {
                    Id = node.SelectSingleNode("id").InnerText,
                    Name = node.SelectSingleNode("name").InnerText,
                    Crouse = node.SelectSingleNode("course").InnerText,
                    Score = int.Parse(node.SelectSingleNode("score").InnerText),
                });
            }
            List<Grade> result = grades.OrderByDescending(g => g.Score).ToList();
            StringBuilder sb = new StringBuilder();
            foreach (Grade grade in result)
            {
                sb.Append($"{grade.Id},{grade.Name},{grade.Crouse},{grade.Score}\n");
            }

            File.WriteAllText("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data.txt", sb.ToString());



            xml写入数据库
            创建连接
            //SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();
            //scsb.DataSource = "REOORO";
            //scsb.UserID = "sa";
            //scsb.Password = "19858184859";
            //scsb.InitialCatalog = "library";

            判断连接是否打开
            //SqlConnection conn = new SqlConnection(scsb.ToString());//参数是连接数据库的字符串
            //if (conn.State == System.Data.ConnectionState.Closed)
            //{
            //    conn.Open();
            //}

            //StringBuilder sql = new StringBuilder();
            //sql.Append("Insert into grade values");
            //foreach(Grade grade in result)
            //{
            //    sql.Append($"('{grade.Id}','{grade.Name}','{grade.Crouse}','{grade.Score}'),");
            //}

            //string sqlTxt = sql.ToString();
            //sqlTxt = sqlTxt.Substring(0,sqlTxt.Length-1);
            //sqlTxt = sqlTxt + ";";

            //SqlCommand sqlCommand = new SqlCommand(sqlTxt, conn);
            //sqlCommand.ExecuteNonQuery();




            //txt转xml
            //TXT转XML
            string[] txts = File.ReadAllLines("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data.txt");
            List<Grade> grades1 = new List<Grade>();
            foreach (string txt in txts)
            {
                string[] datas = txt.Split(',');
                grades1.Add(new Grade()
                {
                    Id = datas[0],
                    Name = datas[1],
                    Crouse = datas[2],
                    Score = int.Parse(datas[3]),
                });
            }

            MemoryStream memoryStream = new MemoryStream();
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(List<Grade>), new XmlRootAttribute("Grades"));
            xmlSerializer.Serialize(memoryStream, grades1);
            memoryStream.Position = 0;
            StreamReader sr = new StreamReader(memoryStream);
            string data = sr.ReadToEnd();
            memoryStream.Close();
            File.WriteAllText("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data1.xml", data);
        }

    }

    public struct Grade
    {
        public string Id { get; set; }
        public string Name { get; set; }
        public string Crouse { get; set; }
        public int Score { get; set; }

    }
}


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Data;
using System.Data.SqlClient;
using static System.Net.Mime.MediaTypeNames;
using System.Diagnostics;
using System.Xml.Serialization;

namespace xml_txt
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //xml转txt
            string str = File.ReadAllText("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data.xml");
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(str);
            XmlNodeList nodes = xmlDoc.SelectNodes("grades//grade");
            List < Grade > grades= new List<Grade>();
            foreach(XmlNode node in nodes)
            {
                grades.Add(new Grade()
                {
                    Id = node.SelectSingleNode("id").InnerText,
                    Name = node.SelectSingleNode("name").InnerText,
                    Crouse = node.SelectSingleNode("course").InnerText,
                    Score = int.Parse(node.SelectSingleNode("score").InnerText),
                });
            }

            //List<Grade> result = grades.OrderByDescending(g => g.Score).ToList();
            StringBuilder sb = new StringBuilder();
            foreach (Grade grade in grades)
            {
                sb.Append($"{grade.Id},{grade.Name},{grade.Crouse},{grade.Score}\n");
            }

            File.WriteAllText("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data.txt", sb.ToString());


            //xml导入数据库
            //1.连接数据库
            SqlConnectionStringBuilder scsb  = new SqlConnectionStringBuilder();
            scsb.DataSource = "REOORO";
            scsb.InitialCatalog = "library";
            scsb.UserID = "sa";
            scsb.Password = "19858184859";

            SqlConnection conn = new SqlConnection(scsb.ToString());
            if(conn.State != ConnectionState.Open)
            {
                conn.Open();
            }

            //导入数据库

            //StringBuilder sql = new StringBuilder();
            //sql.Append($"Insert into grade valuse");
            //foreach (Grade grade in grades)
            //{
            //    sql.Append ($"('{grade.Id }',)");
            //}

            //string sqlTxt = sql.ToString();
            //sqlTxt = sqlTxt.Substring(0,sqlTxt.Length - 1);
            //sqlTxt = sqlTxt + ";";

            //SqlCommand sc = new SqlCommand(sqlTxt, conn);
            //sc.ExecuteNonQuery();


            //txt转xml
            string[] txts = File.ReadAllLines("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data.txt");
            List<Grade> grades1 = new List<Grade>();
            foreach(string  txt in txts)
            {
                string[] datas = txt.Split( ',' );
                grades1.Add(new Grade()
                {
                    Id = datas[0],
                    Name = datas[1],
                    Crouse = datas[2],
                    Score = int.Parse(datas[3]),

                });
            }
            MemoryStream ms = new MemoryStream();
            XmlSerializer xs = new XmlSerializer(typeof(List<Grade>),new XmlRootAttribute("Grades"));
            xs.Serialize(ms, grades1);
            ms.Position = 0;
            StreamReader sr = new StreamReader(ms);
            string data = sr.ReadToEnd();
            File.WriteAllText("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data1.xml", data);


        }
    }
        

        public struct Grade
    {
        public string Id { get; set; }
        public string Name { get; set; }
        public string Crouse { get; set; }
        public int Score { get; set; }

    }
 }


第四次

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Data;
using System.Data.SqlClient;
using static System.Net.Mime.MediaTypeNames;
using System.Diagnostics;
using System.Xml.Serialization;

namespace xml_txt
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //xml转txt
            string str = File.ReadAllText("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data.xml");
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(str);
            XmlNodeList nodes = xmlDoc.SelectNodes("grades//grade");
            List<Grade> grades = new List<Grade>();
            foreach (XmlNode node in nodes)
            {
                grades.Add(new Grade()
                {
                    Id = node.SelectSingleNode("id").InnerText,
                    Name = node.SelectSingleNode("name").InnerText,
                    Crouse = node.SelectSingleNode("course").InnerText,
                    Score = int.Parse(node.SelectSingleNode("score").InnerText),
                }) ;
            }

            List<Grade> result = grades.OrderByDescending(g => g.Score).ToList();
            StringBuilder sb = new StringBuilder();
            foreach(Grade grade in result)
            {
                sb.Append($"{grade.Id},{grade.Name},{grade.Crouse},{grade.Score}\n");
            }

            File.WriteAllText("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data.txt",sb.ToString());

            xml导入数据库

            //SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();
            //scsb.DataSource = "REOORO";
            //scsb.InitialCatalog = "library";
            //scsb.UserID = "sa";
            //scsb.Password = "19858184859";

            //SqlConnection conn = new SqlConnection(scsb.ToString());
            //if (conn.State != ConnectionState.Open)
            //{
            //    conn.Open();
            //}

            //StringBuilder sql = new StringBuilder();
            //sql.Append("insert into library values");
            //foreach(Grade grade in grades)
            //{
            //    sql.Append($"('{grade.Id}','{grade.Name}','{grade.Crouse}','{grade.Score}'),");
            //}

            //string sqlTxt = sql.ToString();
            //sqlTxt = sqlTxt.Substring(0,sqlTxt.Length - 1);
            //sqlTxt = sqlTxt + ";";

            //SqlCommand sc = new SqlCommand(sqlTxt,conn);
            //sc.ExecuteNonQuery();

            //txt转xml
            //1.导入txt进数组
            string[] txts = File.ReadAllLines("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data.txt");
            List<Grade> grades1 = new List<Grade>();
            foreach(string  txt in txts)
            {
                string[] data = txt.Split(',');
                grades1.Add(new Grade()
                {
                    Id = data[0],
                    Name = data[1],
                    Crouse = data[2],
                    Score = int.Parse(data[3]),

                });

                MemoryStream ms = new MemoryStream();
                XmlSerializer xs = new XmlSerializer(typeof(List<Grade>),new XmlRootAttribute("grades"));
                xs.Serialize(ms, grades1);
                ms.Position = 0;
                StreamReader sr = new StreamReader(ms);
                string datas = sr.ReadToEnd();
                File.WriteAllText("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data1.xml", datas);
            }



        }
    }

    public struct Grade
    {
        public string Id { get; set; }
        public string Name { get; set; }
        public string Crouse { get; set; }
        public int Score { get; set; }

    }

}


第五次

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Data;
using System.Data.SqlClient;
using static System.Net.Mime.MediaTypeNames;
using System.Diagnostics;
using System.Xml.Serialization;

namespace xml_txt
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //xml转txt
            //1.导入xml文件
            string str = File.ReadAllText("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data.xml");

            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(str);
            XmlNodeList nodes = xmlDoc.SelectNodes("grades//grade");
            List<Grade> grades = new List<Grade>();
            foreach (XmlNode node in nodes)
            {
                grades.Add(new Grade()
                {
                    Id = node.SelectSingleNode("id").InnerText,
                    Name = node.SelectSingleNode("name").InnerText,
                    Course = node.SelectSingleNode("course").InnerText,
                    Score = int.Parse(node.SelectSingleNode("score").InnerText),
                });
            }

            List<Grade> result = grades.OrderByDescending(g => g.Score).ToList();
            StringBuilder sb = new StringBuilder();
                foreach(Grade grade in result)
                {
                    sb.Append($"{grade.Id},{grade.Name},{grade.Course},{grade.Score}\n");
                }
                File.WriteAllText("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data.txt", sb.ToString());
               

            xml导入数据库
            1.连接数据库
            //SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();
            //scsb.DataSource = "REOORO";
            //scsb.InitialCatalog = "library";
            //scsb.UserID = "sa";
            //scsb.Password = "19858184859";

            //SqlConnection conn = new SqlConnection(scsb.ToString());
            //if(conn.State != ConnectionState.Open)
            //{
            //    conn.Open();
            //}

            2.xml导入数据库
            //StringBuilder sql = new StringBuilder();
            //sql.Append("insert into grades values");
            //foreach (Grade grade in result)
            //{
            //    sql.Append($"('{grade.Id}','{grade.Name}','{grade.Course}','{grade.Score}'),");
            //}

            //string sqlTxt = sql.ToString();
            //sqlTxt = sqlTxt.Substring(0,sqlTxt.Length - 1);
            //sqlTxt = sqlTxt + ";";

            //SqlCommand sc = new SqlCommand(sqlTxt,conn);
            //sc.ExecuteNonQuery();


            //txt转xml
            //1.建一个字符串数组放txt内容
            string[] txts = File.ReadAllLines("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data.txt"); 
            //申请一个Grade型List 
            List<Grade> grades1 = new List<Grade>();
            foreach(string  txt in txts)
            {
                string[] datas = txt.Split(',');
                grades1.Add(new Grade()
                {
                    Id = datas[0],
                    Name = datas[1],
                    Course = datas[2],
                    Score = int.Parse(datas[3]),
                });

                MemoryStream ms = new MemoryStream();
                XmlSerializer xs = new XmlSerializer(typeof(List<Grade>),new XmlRootAttribute("grades"));
                xs.Serialize(ms, grades1);
                ms.Position = 0;
                StreamReader sr = new StreamReader(ms);
                string data = sr.ReadToEnd();
                File.WriteAllText("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data1.xml", data);


            }


            }
        }
    public struct Grade
    {
        public string Id { get; set; }
        public string Name { get; set; }
        public string Course { get; set; }

        public int Score { get; set; }
    }
}

第六次

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Data;
using System.Data.SqlClient;
using static System.Net.Mime.MediaTypeNames;
using System.Diagnostics;
using System.Xml.Serialization;

namespace xml_txt
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //xml转txt
            string str = File.ReadAllText("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data.xml");
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.LoadXml(str);
            XmlNodeList nodes = xmlDoc.SelectNodes("grades//grade");
            List<Grade> grades = new List<Grade>();
            foreach (XmlNode node in nodes)
            {
                grades.Add(new Grade()
                {
                    id = node.SelectSingleNode("id").InnerText,
                    name = node.SelectSingleNode("name").InnerText,
                    course = node.SelectSingleNode("course").InnerText,
                    score = int.Parse(node.SelectSingleNode("score").InnerText),
                });
            }
            //降序
            List<Grade> result = grades.OrderByDescending(g => g.score).ToList();
            StringBuilder sb = new StringBuilder();
            foreach(Grade grade in result)
            {
                sb.Append($"{grade.id},{grade.name},{grade.course},{grade.score}\n");
            }
            File.WriteAllText("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data.txt", sb.ToString());


            xml导入数据库
            //SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();
            //scsb.DataSource = "REOORO";
            //scsb.InitialCatalog = "library";
            //scsb.UserID = "sa";
            //scsb.Password = "19858184859";

            //SqlConnection conn = new SqlConnection(scsb.ToString());
            //if(conn.State != ConnectionState.Open)
            //{
            //    conn.Open();
            //}

            导入
            //StringBuilder sql = new StringBuilder();
            //sql.Append("insert into grades  values");
            //foreach(Grade grade in result)
            //{
            //    sql.Append($"'{grade.Id}','{grade.Name}',''{grade.Course},'{grade.Score}',");
            //}

            //string sqlTxt = sql.ToString();
            //sqlTxt = sqlTxt.Substring(0,sqlTxt.Length - 1);
            //sqlTxt = sqlTxt + ";";

            //SqlCommand cmd = new SqlCommand(sqlTxt, conn);
            //cmd.ExecuteNonQuery();


            //txt转xml
            string[] txts = File.ReadAllLines("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data.txt"); 
            List<Grade> grades1 = new List<Grade>();
            foreach(string txt in txts)
            {
                string[] datas = txt.Split(',');
                grades1.Add(new Grade()
                {
                    id = datas[0],
                    name = datas[1],
                    course = datas[2],
                    score = int.Parse(datas[3]),

                });

                MemoryStream ms = new MemoryStream();
                XmlSerializer xs = new XmlSerializer(typeof(List<Grade>),new XmlRootAttribute("grades"));
                xs.Serialize(ms, grades1);
                ms.Position = 0;
                StreamReader sr = new StreamReader(ms);
                string data = sr.ReadToEnd();
                File.WriteAllText("D:\\研究生复试李泽平\\xml\\xml最终版\\xml-txt\\Data1.xml", data);
            }
        }
        
    }

    public struct Grade
    {
        public string id { get; set;}
        public string name { get; set; }
        public string course { get; set; }
        public int score { get; set; }
    }
   
}

    



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值