主界面
aaarticlea/png;base64,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" alt="" />
/// <summary>
/// xml文件路径
/// </summary>
public const string XmlPath = "test.xml";
常量
//数据表
DataTable dataTable;
属性
/// <summary>
/// 生成数据表
/// </summary>
private void getTable()
{
dataTable = new DataTable();
dataTable.Columns.Add(new DataColumn("课程类型"));
dataTable.Columns.Add(new DataColumn("ISBN号"));
dataTable.Columns.Add(new DataColumn("名称"));
dataTable.Columns.Add(new DataColumn("作者"));
dataTable.Columns.Add(new DataColumn("价格"));
} /// <summary>
/// 生成一个新增行 请保证已生成Table再生成
/// </summary>
private DataRow getAddRow()
{
Random rd = new Random();
DataRow addDr = dataTable.NewRow();
addDr["课程类型"] = "新增课程类型";
addDr["ISBN号"] = Guid.NewGuid().ToString();
addDr["名称"] = "新增名称";
addDr["作者"] = "新增作者";
addDr["价格"] = (Math.Round(rd.NextDouble() * , )).ToString();
return addDr;
} /// <summary>
/// 生成一个修改行 请保证已生成Table再生成
/// </summary>
/// <param name="ISBN">编号</param>
private DataRow getModifiyRow(string ISBN)
{
Random rd = new Random();
DataRow modifiyDr = dataTable.NewRow();
modifiyDr["课程类型"] = "修改课程类型";
modifiyDr["ISBN号"] = ISBN;
modifiyDr["名称"] = "修改名称";
modifiyDr["作者"] = "修改作者";
modifiyDr["价格"] = (Math.Round(rd.NextDouble() * , )).ToString();
return modifiyDr;
} /// <summary>
/// 获取用户选中行的ISBN
/// </summary>
private string getSelectISBN()
{
try
{
return dgvData.CurrentRow.Cells[].Value.ToString();
}
catch
{
return "";
}
} /// <summary>
/// 重置数据并写入xml文件 - XmlTextWriter
/// </summary>
/// <returns></returns>
private void resetData()
{
//创建编写器
XmlTextWriter writer = new XmlTextWriter(XmlPath, Encoding.UTF8);
//使子元素可用知道方式缩进
writer.Formatting = Formatting.Indented;
//是否写1.0声明
writer.WriteStartDocument(true);
//编写元素 bookstore
writer.WriteStartElement("bookstore");
//备注
writer.WriteComment("记录书本的信息"); //book1
writer.WriteStartElement("book");
//添加属性
writer.WriteAttributeString("Type", "选修课");
writer.WriteAttributeString("ISBN", "7-111-19149-1");
//添加指定文本的元素
writer.WriteElementString("title", "计算机操作系统");
writer.WriteElementString("author", "高飞");
writer.WriteElementString("price", "28.00");
//结束标签
writer.WriteEndElement(); //book2
writer.WriteStartElement("book");
//添加属性
writer.WriteAttributeString("Type", "必修课");
writer.WriteAttributeString("ISBN", "7-111-19149-2");
//添加指定文本的元素
writer.WriteElementString("title", "数据结构");
writer.WriteElementString("author", "严蔚敏");
writer.WriteElementString("price", "30.00");
//结束标签
writer.WriteEndElement(); //book3
writer.WriteStartElement("book");
//添加属性
writer.WriteAttributeString("Type", "必修课");
writer.WriteAttributeString("ISBN", "7-111-19149-3");
//添加指定文本的元素
writer.WriteElementString("title", "路由型与交换型互联网基础");
writer.WriteElementString("author", "程庆梅");
writer.WriteElementString("price", "27.00");
//结束标签
writer.WriteEndElement(); //book4
writer.WriteStartElement("book");
//添加属性
writer.WriteAttributeString("Type", "必修课");
writer.WriteAttributeString("ISBN", "7-111-19149-4");
//添加指定文本的元素
writer.WriteElementString("title", "计算机硬件技术基础");
writer.WriteElementString("author", "李继灿");
writer.WriteElementString("price", "25.00");
//结束标签
writer.WriteEndElement(); //book5
writer.WriteStartElement("book");
//添加属性
writer.WriteAttributeString("Type", "必修课");
writer.WriteAttributeString("ISBN", "7-111-19149-5");
//添加指定文本的元素
writer.WriteElementString("title", "软件质量保证与管理");
writer.WriteElementString("author", "朱少民");
writer.WriteElementString("price", "39.00");
//结束标签
writer.WriteEndElement(); //book6
writer.WriteStartElement("book");
//添加属性
writer.WriteAttributeString("Type", "必修课");
writer.WriteAttributeString("ISBN", "7-111-19149-6");
//添加指定文本的元素
writer.WriteElementString("title", "算法设计与分析");
writer.WriteElementString("author", "王红梅");
writer.WriteElementString("price", "23.00");
//结束标签
writer.WriteEndElement(); //bookstore结束标签
writer.WriteEndElement(); //备注
writer.WriteComment("此为恢复出厂设置结果");
writer.WriteComment("妈咪妈咪哄~"); //刷新
writer.Flush();
//关闭
if (writer != null) { writer.Close(); writer.Dispose(); } MessageBox.Show("恢复出厂设置成功~");
dgvData.DataSource = null;
}
私有方法
//XmlDocument
XmlDocument xDoc; /// <summary>
/// 加载数据到表格 XmlDocument
/// </summary>
public void XmlDocumentLoadData()
{
//创建结构表格
getTable();
//创建文档
xDoc = new XmlDocument();
//读取设置
XmlReaderSettings xrs = new XmlReaderSettings();
//忽略注释
xrs.IgnoreComments = true;
//读取xml
XmlReader xr = XmlReader.Create(XmlPath, xrs);
//加载到文档
xDoc.Load(xr);
//获取第一个节点
XmlNode xNode = xDoc.SelectSingleNode("bookstore");
//获取其所有子节点
XmlNodeList xnList = xNode.ChildNodes; //遍历所有子节点
foreach (XmlNode xnItem in xnList)
{
//新建一行
DataRow dr = dataTable.NewRow();
//转换成元素以方便获取属性值
XmlElement xe = (XmlElement)xnItem;
dr["课程类型"] = xe.GetAttribute("Type");
dr["ISBN号"] = xe.GetAttribute("ISBN"); //获取book下子节点
XmlNodeList cxnList = xnItem.ChildNodes;
dr["名称"] = cxnList.Item().InnerText;
dr["作者"] = cxnList.Item().InnerText;
dr["价格"] = cxnList.Item().InnerText; //加入表格
dataTable.Rows.Add(dr);
} //绑定数据
dgvData.DataSource = dataTable; if (xr != null) { xr.Close(); xr.Dispose(); }
} /// <summary>
/// 新增一行
/// </summary>
public void XmlDocumentAdd()
{
if (dgvData.DataSource == null)
throw new Exception("未加载数据源!"); if (xDoc == null)
throw new Exception("请先使用XmlDocument加载数据!"); //获取新增行数据
DataRow addDr = getAddRow();
//获取商店节点
XmlNode xn = xDoc.SelectSingleNode("bookstore"); //创建书节点
XmlElement xe = xDoc.CreateElement("book"); //添加属性
xe.SetAttribute("Type", addDr["课程类型"].ToString());
xe.SetAttribute("ISBN", addDr["ISBN号"].ToString()); //创建书节点
XmlElement xe2 = xDoc.CreateElement("title");
xe2.InnerText = addDr["名称"].ToString();
XmlElement xe3 = xDoc.CreateElement("author");
xe3.InnerText = addDr["作者"].ToString();
XmlElement xe4 = xDoc.CreateElement("price");
xe4.InnerText = addDr["价格"].ToString(); //子节点添加到book中
xe.AppendChild(xe2);
xe.AppendChild(xe3);
xe.AppendChild(xe4); //book添加到bookstore中
xn.AppendChild(xe); //保存修改
XmlDocumentSave(); //重新加载
XmlDocumentLoadData();
} /// <summary>
/// 修改一行
/// </summary>
public void XmlDocumentModifiy()
{
if (dgvData.DataSource == null)
throw new Exception("未加载数据源!"); if (xDoc == null)
throw new Exception("请先使用XmlDocument加载数据!"); //获取商店
XmlNode xn = xDoc.SelectSingleNode("bookstore"); //获取所有书
XmlNodeList xnl = xn.ChildNodes; //获取选中行id
string selectId = getSelectISBN();
//是否选中
if (string.IsNullOrEmpty(selectId))
{
throw new Exception("没有要修改的数据!");
} //遍历所有书
foreach (XmlNode item in xnl)
{
XmlElement xe = (XmlElement)item;
if (xe.GetAttribute("ISBN").Equals(selectId))
{
//获取修改行数据
DataRow modifiyDr = getModifiyRow(selectId);
//改变书属性值
xe.SetAttribute("Type", modifiyDr["课程类型"].ToString()); //获取书下所有节点并修改
XmlNodeList cxnList = item.ChildNodes;
cxnList.Item().InnerText = modifiyDr["名称"].ToString();
cxnList.Item().InnerText = modifiyDr["作者"].ToString();
cxnList.Item().InnerText = modifiyDr["价格"].ToString(); break;
}
} //保存修改
XmlDocumentSave(); //重新加载
XmlDocumentLoadData();
} /// <summary>
/// 删除一行
/// </summary>
private void XmlDocumentDelete()
{
if (dgvData.DataSource == null)
throw new Exception("未加载数据源!"); if (xDoc == null)
throw new Exception("请先使用XmlDocument加载数据!"); //获取商店
XmlNode xn = xDoc.SelectSingleNode("bookstore"); //获取所有书
XmlNodeList xnl = xn.ChildNodes; //获取选中行id
string selectId = getSelectISBN(); //是否选中
if (string.IsNullOrEmpty(selectId))
{
throw new Exception("没有要删除的数据!");
} //遍历所有书
foreach (XmlNode item in xnl)
{
XmlElement xe = (XmlElement)item;
if (xe.GetAttribute("ISBN").Equals(selectId))
{
xn.RemoveChild(item);
break;
}
} //保存修改
XmlDocumentSave(); //重新加载
XmlDocumentLoadData();
} /// <summary>
/// 保存xml
/// </summary>
private void XmlDocumentSave()
{
xDoc.Save(XmlPath);
}
XmlDocument
XmlTextReader reader; /// <summary>
/// 加载数据到表格 XmlTextReader
/// </summary>
public void XmlTextReaderLoadData()
{
//创建结构表格
getTable(); //创建阅读器
reader = new XmlTextReader(XmlPath); //新建一列(循环开始前新建是为了避免不必要的新建)
DataRow dr = dataTable.NewRow(); //开始读取(从上到下一个个节点读取
//例:﹤author﹥高飞﹤/author﹥这会看成3个节点
//1.﹤author﹥->XmlNodeType.Element 2.高飞->XmlNodeType.Text 3.﹤/author﹥->XmlNodeType.EndElement)
while (reader.Read())
{
//如果是元素
if (reader.NodeType == XmlNodeType.Element)
{
//读到书
if (reader.Name == "book")
{
dr["课程类型"] = reader.GetAttribute("Type");
dr["ISBN号"] = reader.GetAttribute("ISBN");
} //读到标题
if (reader.Name == "title")
{
dr["名称"] = reader.ReadString();
} //读到作者
if (reader.Name == "author")
{
dr["作者"] = reader.ReadString();
} //读到价格
if (reader.Name == "price")
{
dr["价格"] = reader.ReadString();
}
} //如果book一个对象读取完了添加一行
if (reader.NodeType == XmlNodeType.EndElement && reader.Name == "book")
{
dataTable.Rows.Add(dr);
dr = dataTable.NewRow();
}
} //绑定数据
dgvData.DataSource = dataTable; if (reader != null) { reader.Close(); reader.Dispose(); }
} /// <summary>
/// 新增一行
/// </summary>
public void XmlTextReaderAdd()
{
if (dgvData.DataSource == null)
throw new Exception("未加载数据源!"); //提示
DialogResult dr = MessageBox.Show("小弟无能,实现不了,只能覆盖,追加不了!那覆盖了哈?", "提示", MessageBoxButtons.OKCancel);
//取消不做事
if (dr == DialogResult.Cancel)
{
return;
}
//创建编写器
XmlTextWriter writer = new XmlTextWriter(XmlPath, Encoding.UTF8);
//使子元素可用知道方式缩进
writer.Formatting = Formatting.Indented;
//是否写1.0声明
writer.WriteStartDocument(true);
//编写元素 bookstore
writer.WriteStartElement("bookstore"); //book
writer.WriteStartElement("book");
//添加属性
writer.WriteAttributeString("Type", "覆盖课程类型");
writer.WriteAttributeString("ISBN", "7-111-19149-1");
//添加指定文本的元素
writer.WriteElementString("title", "覆盖课程名称");
writer.WriteElementString("author", "覆盖作者");
writer.WriteElementString("price", "0.00");
//结束标签
writer.WriteEndElement();
//bookstore结束
writer.WriteEndElement(); //刷新
writer.Flush();
//关闭
if (writer != null) { writer.Close(); writer.Dispose(); } //重新加载
XmlTextReaderLoadData();
}
XmlTextReader
XElement xe; /// <summary>
/// 加载数据到表格 Linq to Xml
/// </summary>
public void LinqLoadData()
{
//创建结构表格
getTable();
//初始化
xe = XElement.Load(XmlPath); //查出需要的数据并组合list
var query = (from item in xe.Elements("book")//或xe.Descendants("book")
select new
{
Type = item.Attribute("Type").Value,
ISBN = item.Attribute("ISBN").Value,
Title = item.Element("title").Value,
Author = item.Element("author").Value,
Price = item.Element("price").Value
}).ToList(); foreach (var item in query)
{
//新增行
DataRow dr = dataTable.NewRow(); //加数据
dr["课程类型"] = item.Type;
dr["ISBN号"] = item.ISBN;
dr["名称"] = item.Title;
dr["作者"] = item.Author;
dr["价格"] = item.Price; //添加行
dataTable.Rows.Add(dr);
} //绑定数据源
dgvData.DataSource = dataTable;
} /// <summary>
/// 新增一行
/// </summary>
public void LinqAdd()
{
if (dgvData.DataSource == null)
throw new Exception("未加载数据源!"); if (xe == null)
throw new Exception("请先使用Linq To Xml加载数据!"); //获取新增行数据
DataRow addDr = getAddRow(); //新建一个book
XElement newXe = new XElement(
new XElement("book",
new XAttribute("Type", addDr["课程类型"]),
new XAttribute("ISBN", addDr["ISBN号"]),
new XElement("title", addDr["名称"]),
new XElement("author", addDr["作者"]),
new XElement("price", addDr["价格"])
)); //新增一个
xe.Add(newXe); //保存
LinqSave(); //重新加载
LinqLoadData(); } /// <summary>
/// 修改一行
/// </summary>
public void LinqModifiy()
{
if (dgvData.DataSource == null)
throw new Exception("未加载数据源!"); if (xe == null)
throw new Exception("请先使用Linq To Xml加载数据!"); //获取选中行id
string selectId = getSelectISBN(); //是否选中
if (string.IsNullOrEmpty(selectId))
{
throw new Exception("没有要修改的数据!");
} //生成修改行
DataRow dr = getModifiyRow(selectId); //找到要修改的数据
var query = (from item in xe.Elements("book")
where item.Attribute("ISBN").Value == selectId
select item).ToList(); if (query.Count < )
{
throw new Exception("没有要修改的数据!");
} //提出行
XElement mXe = query[]; //修改属性
mXe.SetAttributeValue("Type", dr["课程类型"]);
mXe.SetAttributeValue("ISBN", dr["ISBN号"]); //修改行
mXe.SetElementValue("title", dr["名称"]);
mXe.SetElementValue("author", dr["作者"]);
mXe.SetElementValue("price", dr["价格"]); //保存
LinqSave(); //重新加载
LinqLoadData();
} /// <summary>
/// 删除一行
/// </summary>
private void LinqDelete()
{
if (dgvData.DataSource == null)
throw new Exception("未加载数据源!"); if (xe == null)
throw new Exception("请先使用Linq To Xml加载数据!"); //获取选中行id
string selectId = getSelectISBN(); //是否选中
if (string.IsNullOrEmpty(selectId))
{
throw new Exception("没有要删除的数据!");
} //找到要删除的数据
var query = (from item in xe.Elements("book")
where item.Attribute("ISBN").Value == selectId
select item).ToList(); //移除
query.Remove(); //保存
LinqSave(); //重新加载
LinqLoadData(); } /// <summary>
/// 保存xml
/// </summary>
private void LinqSave()
{
xe.Save(XmlPath);
}
Linq To Xml
参考:http://www.cnblogs.com/a1656344531/archive/2012/11/28/2792863.html
c#操作xml文件(XmlDocument,XmlTextReader,Linq To Xml)的更多相关文章
-
如何在web.xml文件中引入其他的xml文件(拆分web.xml)
转载自:http://www.blogjava.net/jiangjf/archive/2009/04/09/264685.html 最近在做一个Servlet+javaBean的项目,服务器用的是t ...
-
Spring框架找不到 applicationContext.xml文件,可能是由于applicationContext.xml文件的路径没有放在根目录下造成的
Spring框架找不到 applicationContext.xml文件,可能是由于applicationContext.xml文件的路径没有放在根目录下造成的
-
XML基础学习02<;linq to xml>;
Linq to XML的理解 1:这是一种比较好的操作Xml的工具. àXDocument 文档 àXElement 元素 àXAttribute 属性 àXText 文本 2:这里还是和我们之前创建 ...
-
XML文件的写,集合XML序列化(写)。XML文件的读,递归遍历
XML文件:必须要有一个节点.检验xml文件,可以用浏览器打开,能打开表示对,否则错. 处理方法: DOM:XmlDocument文档对象模型 Sax(事件驱动,XmlReader) XmlSeria ...
-
使用XML序列化器生成XML文件和利用pull解析XML文件
首先,指定XML格式,我指定的XML格式如下: <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <message&g ...
-
生成XML文件,通过实体生成XML文件
实体 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Xm ...
-
XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax
本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...
-
Spring如何解析XML文件——Spring源码之XML初解析
首先,在我的这篇博客中已经说到容器是怎么初步实现的,并且要使用XmlBeanDefinitionReader对象对Xml文件进行解析,那么Xml文件是如何进行解析的,将在这片博客中进行一些陈述. 数据 ...
-
Spring整合Hibernate的XML文件配置,以及web.xml文件配置
利用Spring整合Hibernate时的XML文件配置 applicationContext.xml <?xml version="1.0" encoding=" ...
-
Eclipse关闭XML文件验证的方法,解决xml警告
XML的编写是否符合规范,可以通过XML Schema或DTD进行验证,但有时候电脑本来就很卡,而且XML的某些错误并未导致程序无法运行的情况下,暂时关闭XML的验证也算不错的选择. 如web.xml ...
随机推荐
-
Node.js连接Mysql,并把连接集成进Express中间件中
引言 在node.js连接mysql的过程,我们通常有两种连接方法,普通连接和连接池. 这两种方法较为常见,当我们使用express框架时还会选择使用中间express-myconnection,可以 ...
-
UWP webview 键盘bug,回退页面,键盘会弹一下。
最新项目发现一个关于Webview的键盘bug. 具体问题:当点击Webview 网页里面input之类的东东,输入键盘会弹出来,这个时候,按回退键,键盘会收起来,再按回退键,界面会退到前一个页面,但 ...
-
html window.open 使用详解
window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no ...
-
jQuery瀑布流从不同方向加载3种效果演示
很实用的一款插件jQuery瀑布流从不同方向加载3种效果演示在线预览 下载地址 实例代码 <section class="grid-wrap"> <ul clas ...
-
Options for Debugging Your Program or GCC
[Options for Debugging Your Program or GCC] -g Produce debugging information in the operating system ...
-
【Database】MySQL各版本的区别
MySQL 的官网下载地址:http://www.mysql.com/downloads/ 在这个下载界面会有几个版本的选择. 1. MySQL Community Server 社区版本,开源免费, ...
-
Basic DataList
一,效果图. 二,源代码. <!DOCTYPE html><html><head> <meta charset="UTF-8"> & ...
-
Material Design学习-----SnackBar
SnackBar是一个和Toast类似的空间,用于弹出提示作用,但是相比于Toast而已,SnackBar会有一个不错的动画效果,同时当手指完成屏幕中其他操作的时候,SnackBar会立即消失.同时可 ...
-
3步轻松搭建Unity3d安卓开发环境
之前写过一个Untiy3d安卓开发环境的配置教程,那是我第一次学习配置安卓开发环境,互联网上的信息良莠不齐,自己当时也不懂,配置步骤麻烦的一塌糊涂,现在见的多了,也会的多了,配置安卓开发环境变得非常容 ...
-
vb6.0快速操作注册表函数大全(仅字符串KEY值部分)
Option Explicit '声明要加载的函数 Private Declare Function RegCreateKey Lib "advapi32.dll" Alias & ...