快速写入Xml文件
我们在做一些操作的时候会需要生成日志,Xml文件就是我们常用的一种日志文件。
普通操作Xml文件的代码遇到大数据量的话就很慢了。
用这个生成Xml文件的话,即使数据量很大,也很快
private void WriteXml(BindingList<Model.WebServiceLog> listwebservicelog, string XName)
{
DateTime dtNow = Globas.Globas.DtNowTime; ;
string dateString = dtNow.Year.ToString();
dateString += dtNow.Month.ToString().Length < ? ("" + dtNow.Month.ToString()) : (dtNow.Month.ToString());
dateString += dtNow.Day.ToString().Length < ? ("" + dtNow.Day.ToString()) : (dtNow.Day.ToString()); string filePath = ConfigurationManager.AppSettings["path"];
filePath = filePath.EndsWith(@"\") ? filePath : (filePath + @"\");
filePath = filePath + dateString;
filePath = filePath.EndsWith(@"\") ? filePath : (filePath + @"\"); if (Directory.Exists(filePath) == false)
{
Directory.CreateDirectory(filePath);//判断该路径是否存在,不存在则创建该路径文件夹
} filePath = filePath + XName + DateTime.Now.ToString("yyyyMMdd") + ".xml";
String filename = String.Concat(filePath);
using (StreamWriter sw = new StreamWriter(filename, true, System.Text.Encoding.GetEncoding("UTF-8")))
{
XmlTextWriter xmlWriter = new XmlTextWriter(sw);
xmlWriter.Formatting = Formatting.Indented;
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("Logs"); foreach (Model.WebServiceLog webservicelog in listwebservicelog)
{
xmlWriter.WriteStartElement("Log");
xmlWriter.WriteElementString("UseDate", webservicelog.UseDate);
xmlWriter.WriteElementString("Method", webservicelog.Method);
xmlWriter.WriteElementString("Parameter", webservicelog.Parameter);
xmlWriter.WriteElementString("UseOrReturn", webservicelog.UseOrReturn);
// close contact </contact>
xmlWriter.WriteEndElement();
}
// close contacts </contact>
xmlWriter.WriteEndElement();
xmlWriter.WriteEndDocument();
xmlWriter.Close();
}
}
调用方式:
WriteXml(listWebservice, "Info_");
快速写入Xml文件的更多相关文章
- 通俗易懂,C#如何安全、高效地玩转任何种类的内存之Span的脾气秉性(二)。 异步委托 微信小程序支付证书及SSL证书使用 SqlServer无备份下误删数据恢复 把list集合的内容写入到Xml中,通过XmlDocument方式写入Xml文件中 通过XDocument方式把List写入Xml文件
通俗易懂,C#如何安全.高效地玩转任何种类的内存之Span的脾气秉性(二). 前言 读完上篇<通俗易懂,C#如何安全.高效地玩转任何种类的内存之Span的本质(一).>,相信大家对sp ...
- C#读取和写入XML文件
关于xml是属于一个比较重要的东西,在平时开发的过程中,这块内容最主要的是要掌握XML内容的读取和写入操作. 一.什么是XML? XML 指可扩展标记语言(EXtensible Markup Lang ...
- xml文件生成方式一(字符串拼接,将多实体类对象写入xml文件)
1.xml文件生成,拼接字符串使用StringBuffer或StringBuilder 2.拼接好后写入文件即可,将多个实体类写入xml文件 3.这种方式比较简单,但是操作也比较麻烦 4.下面是我的代 ...
- Pugixml一种快速解析XML文件的开源解析库
Pugixml是一个轻量级的C++ XML开源解析库,DOM形式的解析器.接口和丰富的遍历和修改操作,快速的解析,此外支持XPath1.0实现数据查询,支持unicode编码: 使用Pugixml可通 ...
- spring 多线程 写入数据库 和 写入 xml文件
最近工作中遇到一个需求 多线程先爬取页面 然后将爬取的结果持久化到数据库中 ,一些大文本的内容需要持久化到 xml文件中; 下面是运行后的结果: xml 文件写入结果: 数据库写入结果: 再来张项目结 ...
- 【python小练】0017-将xls文件内容写入xml文件中
第 0017 题: 将 第 0014 题中的 student.xls 文件中的内容写到 student.xml 文件中,如 下所示: <?xml version="1.0" ...
- Delphi数据库数据用文件流方式快速写入Excel文件
在开发数据库应用程序中,经常要将类型相同的数据导出来,放到Excel文件中,利用Excel强大的编辑功能,对数据作进一步的加工处理.这有许多的方法,我们可以使用OLE技术,在Delphi中创建一个自动 ...
- C#Doc写入 XML文件
HTML是XML的先驱,XML延续了HTML的简单性的优点.XML不是用来替代HTML的, XML和HTML为不同的目的而设计: XML被设计用来描述数据,其焦点是数据的内容.HTML被设计用来显示数 ...
- 通过XDocument方式把List写入Xml文件
List<Person> list=new List<Person>{ new Person(){Name="张三",Age=50,Address=&quo ...
随机推荐
- Android推送进阶课程学习笔记
今天在慕课网学习了Android进阶课程推送的server端处理回执的消息 . 这集课程主要介绍了,当server往client推送消息的时候,client须要发送一个回执回来确认收到了推送消息才算一 ...
- js进阶 9-10 html控件如何实现点击自动选择控件内容
js进阶 9-10 html控件如何实现点击自动选择控件内容 一.总结 一句话总结: 1.在click事件中,如果focus,那就select 2.blur 1.html中控件添加两种方式? 在表单 ...
- Linux中vim编辑器莫名下方出现H的问题
在使用vim编辑文件的时候,不知道自己是按了哪个快捷键,导致了,每次编辑文件时,下方命令行出现数字+H的格式命令,使得整个文件没法编辑,强制退出后进入不能解决问题,各种文件的编辑都不行,找不出原因,最 ...
- erlang中如何调试程序
学习一门语言,当学习那些基本语法的时候,我们常常会忽略它的程序调试,当程序稍微复杂一点的时候,我们不能保证程序的完全正确,我们会为其发愁,这时,程序的调试就变得相当重要了. 在erlang环境搭 ...
- 【9302】&&【a301】兔子繁殖
Time Limit: 10 second Memory Limit: 2 MB 问题描述 有一种兔子,出生后一个月就可以长大,然后再过一个月一对长大的兔子就可以生育一对小兔子且以后每个月都能生育一对 ...
- 【23.33%】【codeforces 664C】International Olympiad
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- GridLayout网格布局
网格布局特点: l 使容器中的各组件呈M行×N列的网格状分布. l 网格每列宽度相同,等于容器的宽度除以网格的列数. l 网格每行高度相同,等于容器的高度除以网格的行数. l 各组件的排列方式 ...
- LoadFromStr的使用中出现错误“未结束的字符串常量”
最近遇到个奇怪的问题,就是关于js参数中待换行符时,出现了错误“为结束的字符串常量”. 解决方法是:不直接将该数据以参数形式传递,而是先将其赋值在一个隐藏的文本内,需要调用的函数里只需读取该文本里的内 ...
- Cordova之打包签名apk
首先是关于apk签名,Android程序的安装是以包名(package name)进行区分的,就是同样的包名会被认作是同一个程序.这样就可以进行升级.替换.但是包名是一个可以被查看的字符串,这样就可能 ...
- Java 联系Oracle 数据库
一般完成 import oracle.jdbc.driver.*; 会后声明,你会发现一个错误.然后,你需要: 一.该JDBC开车到classpath 两种方法.一是图形化,计算机-属性-高级设置-环 ...