博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读写XML
阅读量:5036 次
发布时间:2019-06-12

本文共 3711 字,大约阅读时间需要 12 分钟。

本文主要讲将XML数据读取到数据库中,和从读取数据库中数据写入XML,数据库使用MySql

首先脑补下XML的知识:

XML作用:存储数据
优点:每种语言都内置了XML文件分析引擎,不用单独进行文件分析引擎的编写。
XML语法规范:
1)必须区分大小写
2)文档中只能有一个根节点
3)属性值必须用双引号
4)有开始标签一定要有结束标签
5)文档声明:<?xml version="1.0" encoding="utf-8"?>
 
读取数据库中的数据写入到XML:
主要用到的方法时setAttributeValue和setElementValue
1 static void Main(string[] args) 2         { 3             DataTable table = GetDataTable(); 4             List
stuList = TableToList(table); 5 XDocument xdoc = new XDocument(); 6 XElement root = new XElement("Person"); 7 xdoc.Add(root);//添加根节点 8 foreach (Student stu in stuList) 9 {10 XElement stuEle = new XElement("Student");11 stuEle.SetAttributeValue("stuId",stu.Student_Id.ToString());//设置属性12 stuEle.SetElementValue("name",stu.Name);//设置子节点和值13 stuEle.SetElementValue("class", stu.Class);14 stuEle.SetElementValue("gender", stu.Gender);15 root.Add(stuEle);16 }17 xdoc.Save("1.xml");18 Console.WriteLine("数据库写入完毕");19 Console.ReadKey();20 }21 ///
22 /// 读取数据库表数据23 /// 24 ///
25 public static DataTable GetDataTable()26 {27 string connstr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;28 DataSet ds= MySqlHelper.ExecuteDataset(connstr,"select * from student");29 return ds.Tables[0];30 }31 ///
32 /// 将行转换为list33 /// 34 ///
35 ///
36 public static List
TableToList(DataTable table)37 {38 List
list = new List
();39 for (int i = 0; i < table.Rows.Count; i++)40 {41 Student stu = new Student();42 DataRow row=table.Rows[i];43 stu.Class = row["Class"].ToString();44 stu.Gender = row["Gender"].ToString();45 stu.Name = row["Name"].ToString();46 stu.Student_Id = Convert.ToInt32(row["Student_Id"]);47 list.Add(stu);48 }49 return list;50 }

读取xml数据插入到数据库

主要用到的方法item.Attribute("Xname").value--获取属性的值 item.Element("Xname").value--获取子节点的值

1            string connstr = "server=localhost;database=test;user id=root;password=123"; 2             XDocument xdoc = XDocument.Load(@"F:\tmp\1.xml"); 3             XElement root = xdoc.Root; 4             foreach (XElement item in root.Elements()) 5             { 6                 //Console.WriteLine(item.Element("name").Value); 7                 //Console.WriteLine(item.Element("class").Value); 8                 //Console.WriteLine(item.Element("gender").Value); 9                 string sql = "insert into student(Student_Id,Name,Class,Gender)values(@Student_Id,@Name,@Class,@Gender)";10                 MySqlParameter[] ps = { 11                                       new MySqlParameter("@Student_Id",item.Attribute("stuId").Value),//读取属性值12                                       new MySqlParameter("@Name",item.Element("name").Value),//读取子节点值13                                       new MySqlParameter("@Class",item.Element("class").Value),14                                       new MySqlParameter("@Gender",item.Element("gender").Value)15                                       };16                 MySqlHelper.ExecuteNonQuery(connstr, sql, ps);//插入数据库17             }18             Console.WriteLine("ok");19             Console.ReadKey();

 

转载于:https://www.cnblogs.com/lucyliang/p/4987608.html

你可能感兴趣的文章
索尼(SONY) SVE1512S7C 把WIN8降成WIN7图文教程
查看>>
时间模块 && time datetime
查看>>
jquery自动生成二维码
查看>>
spring回滚数据
查看>>
新浪分享API应用的开发
查看>>
美国专利
查看>>
【JavaScript】Write和Writeln的区别
查看>>
百度编辑器图片在线流量返回url改动
查看>>
我对你的期望有点过了
查看>>
微信小程序wx:key以及wx:key=" *this"详解:
查看>>
下拉框比较符
查看>>
2.2.5 因子的使用
查看>>
css选择器
查看>>
photoplus
查看>>
Python 拓展之推导式
查看>>
[Leetcode] DP-- 474. Ones and Zeroes
查看>>
80X86寄存器详解<转载>
查看>>
c# aop讲解
查看>>
iterable与iterator
查看>>
返回顶部(动画)
查看>>