读写XML
2015-11-23 10:22
190 查看
本文主要讲将XML数据读取到数据库中,和从读取数据库中数据写入XML,数据库使用MySql
首先脑补下XML的知识:
XML作用:存储数据
优点:每种语言都内置了XML文件分析引擎,不用单独进行文件分析引擎的编写。
XML语法规范:
1)必须区分大小写
2)文档中只能有一个根节点
3)属性值必须用双引号
4)有开始标签一定要有结束标签
5)文档声明:<?xml version="1.0" encoding="utf-8"?>
读取数据库中的数据写入到XML:
主要用到的方法时setAttributeValue和setElementValue
读取xml数据插入到数据库
主要用到的方法item.Attribute("Xname").value--获取属性的值 item.Element("Xname").value--获取子节点的值
首先脑补下XML的知识:
XML作用:存储数据
优点:每种语言都内置了XML文件分析引擎,不用单独进行文件分析引擎的编写。
XML语法规范:
1)必须区分大小写
2)文档中只能有一个根节点
3)属性值必须用双引号
4)有开始标签一定要有结束标签
5)文档声明:<?xml version="1.0" encoding="utf-8"?>
读取数据库中的数据写入到XML:
主要用到的方法时setAttributeValue和setElementValue
static void Main(string[] args) { DataTable table = GetDataTable(); List<Student> stuList = TableToList(table); XDocument xdoc = new XDocument(); XElement root = new XElement("Person"); xdoc.Add(root);//添加根节点 foreach (Student stu in stuList) { XElement stuEle = new XElement("Student"); stuEle.SetAttributeValue("stuId",stu.Student_Id.ToString());//设置属性 stuEle.SetElementValue("name",stu.Name);//设置子节点和值 stuEle.SetElementValue("class", stu.Class); stuEle.SetElementValue("gender", stu.Gender); root.Add(stuEle); } xdoc.Save("1.xml"); Console.WriteLine("数据库写入完毕"); Console.ReadKey(); } /// <summary> /// 读取数据库表数据 /// </summary> /// <returns></returns> public static DataTable GetDataTable() { string connstr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString; DataSet ds= MySqlHelper.ExecuteDataset(connstr,"select * from student"); return ds.Tables[0]; } /// <summary> /// 将行转换为list /// </summary> /// <param name="table"></param> /// <returns></returns> public static List<Student> TableToList(DataTable table) { List<Student> list = new List<Student>(); for (int i = 0; i < table.Rows.Count; i++) { Student stu = new Student(); DataRow row=table.Rows[i]; stu.Class = row["Class"].ToString(); stu.Gender = row["Gender"].ToString(); stu.Name = row["Name"].ToString(); stu.Student_Id = Convert.ToInt32(row["Student_Id"]); list.Add(stu); } return list; }
读取xml数据插入到数据库
主要用到的方法item.Attribute("Xname").value--获取属性的值 item.Element("Xname").value--获取子节点的值
string connstr = "server=localhost;database=test;user id=root;password=123"; XDocument xdoc = XDocument.Load(@"F:\tmp\1.xml"); XElement root = xdoc.Root; foreach (XElement item in root.Elements()) { //Console.WriteLine(item.Element("name").Value); //Console.WriteLine(item.Element("class").Value); //Console.WriteLine(item.Element("gender").Value); string sql = "insert into student(Student_Id,Name,Class,Gender)values(@Student_Id,@Name,@Class,@Gender)"; MySqlParameter[] ps = { new MySqlParameter("@Student_Id",item.Attribute("stuId").Value),//读取属性值 new MySqlParameter("@Name",item.Element("name").Value),//读取子节点值 new MySqlParameter("@Class",item.Element("class").Value), new MySqlParameter("@Gender",item.Element("gender").Value) }; MySqlHelper.ExecuteNonQuery(connstr, sql, ps);//插入数据库 } Console.WriteLine("ok"); Console.ReadKey();
相关文章推荐
- ORACLE用JDBC操作CLOB
- 使用JavaMail接收邮件的示例
- Unity3D游戏开发之C++插件接入
- 最简单Android音乐播放器
- Android编程实现泡泡聊天界面实例详解(附源码)
- ie6,ie7常见兼容性问题总结
- js日期时间选择器bootstrap
- android android studio使用教程(五)gradle环境配置
- JSP基本指令
- selenium python (一) 开发环境搭建
- __weak
- iOS开发者遇到审核失败的原因及解决办法
- 第九章 控制抽象
- maven导出项目依赖的jar包
- Codeforces Round #185 (Div. 2) C. The Closest Pair 构造
- Easyui combobox 源码修改模糊查询v=1.34
- oracle分配权限 学习笔记--转载
- 解析OBJ模型并将其加载到Unity3D场景中
- hdu1754解题报告
- Jenkins中Git Plugin配置的几个小问题