[原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界
本文原始作者博客 http://www.cnblogs.com/toutou
Linq 入门篇(一):分分钟带你遨游linq to xml的世界
1.Linq简介:回到顶部
LINQ,语言集成查询(Language Integrated Query)是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。在网上有很多对于Linq性能或者其他方面的批判或者表扬云云。 在这里我不想对Linq做任何方面的评价,因为我始终相信物生一利,必生一弊。而且其实很多技术,Linq也好,多线程也罢。我觉得既然这些技术存在都是有它的道理的。主要还是靠自己项目的需求,再确定是否引入这些技术。技术本身都是为了服务项目而生的。
本博客将通过几个简单而又传统的增删改查的示例来带大家充分感受linq的乐趣。
2.Linq案例回到顶部
创建文件回到顶部
// 创建一个文件路径
string path = string.Format(@"F:\{0}.xml", DateTime.Now.ToString("yyyyMMddhhmmss"));
FileInfo fiXML = new FileInfo(path);
// 如果文件不存在
if (!(fiXML.Exists))
{
// 创建xml文档
XDocument xelLog = new XDocument(
new XDeclaration("1.0", "utf-8", "no"),
new XElement("ipmsg",
new XElement("msg_log",
new XElement("user", "猴哥"),
new XElement("logdate", DateTime.Now.ToString("yyyyMMddhhmmss")),
new XElement("message", "猴哥到此一游")
)
)
);
xelLog.Save(path);
}
运行之后的xml文件应该是这样的:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<ipmsg>
<msg_log>
<user>猴哥</user>
<logdate>20150421024045</logdate>
<message>猴哥到此一游</message>
</msg_log>
</ipmsg>
增回到顶部
string path = @"F:\20150421024045.xml";
// 检查文件是否存在
if ((File.Exists(path)))
{
//实例化XMLog
XElement xelem = XElement.Load(path); //执行linq添加(xmlLOG)
XElement newLog = new XElement("msg_log",
new XElement("user", "沙僧"),
new XElement("logdate", DateTime.UtcNow.ToString()),
new XElement("message", "大师兄,师傅被妖怪抓走了")
);
xelem.Add(newLog);
//保存xml
xelem.Save(path); }
运行之后的xml文件应该是这样的:
<?xml version="1.0" encoding="utf-8"?>
<ipmsg>
<msg_log>
<user>猴哥</user>
<logdate>20150421024045</logdate>
<message>猴哥到此一游</message>
</msg_log>
<msg_log>
<user>沙僧</user>
<logdate>4/21/2015 6:49:03 AM</logdate>
<message>大师兄,师傅被妖怪抓走了</message>
</msg_log>
</ipmsg>
删回到顶部
string path = @"F:\20150421024045.xml";
// 检查文件是否存在
if ((File.Exists(path)))
{
//实例化XMLog
XElement xelem = XElement.Load(path); var queryXML = from xmlLog in xelem.Descendants("msg_log")
where xmlLog.Element("user").Value == "猴哥"
select xmlLog; queryXML.Remove(); //保存xml
xelem.Save(path); }
运行之后的xml文件应该是这样的:
<?xml version="1.0" encoding="utf-8"?>
<ipmsg>
<msg_log>
<user>沙僧</user>
<logdate>4/21/2015 6:49:03 AM</logdate>
<message>大师兄,师傅被妖怪抓走了</message>
</msg_log>
</ipmsg>
改回到顶部
string path = @"F:\20150421024045.xml";
// 检查文件是否存在
if ((File.Exists(path)))
{
//实例化XMLog
XElement xelem = XElement.Load(path); var queryXML = from xmlLog in xelem.Descendants("msg_log")
where xmlLog.Element("user").Value == "沙僧"
select xmlLog;
queryXML.FirstOrDefault().Element("message").Value = "二师兄,大师兄被妖怪抓走了"; //保存xml
xelem.Save(path); }
运行之后的xml文件应该是这样的:
<?xml version="1.0" encoding="utf-8"?>
<ipmsg>
<msg_log>
<user>沙僧</user>
<logdate>4/21/2015 6:49:03 AM</logdate>
<message>二师兄,大师兄被妖怪抓走了</message>
</msg_log>
</ipmsg>
查 回到顶部
string path = @"F:\20150421024045.xml";
string messageByShaSeng = string.Empty;
// 检查文件是否存在
if ((File.Exists(path)))
{
//实例化XMLog
XElement xelem = XElement.Load(path);
var queryXml= from xmlLog in xelem.Descendants("msg_log")
//所有名字为Bin的记录
where xmlLog.Element("user").Value == "沙僧" select xmlLog;
messageByShaSeng = queryXml.FirstOrDefault().Element("message").Value;
} Console.WriteLine(messageByShaSeng);
运行输入内容是: 二师兄,大师兄被妖怪抓走了
本文所有内容皆为原创,欢迎欣赏阅读和探讨,转载务必请注明出处,否则追究法律责任(虽然linq已是陈腔滥调,但是也是原创)
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。另外如需更深的了解Linq,不妨来这里看看
本文原始作者博客 http://www.cnblogs.com/toutou
if您看了这篇博客。对您有所帮助,请不要吝啬您的“推荐”,您的推荐将是我最大的动力。有问题的话可以评论交流。
[原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界的更多相关文章
- 使用python操作XML增删改查
使用python操作XML增删改查 什么是XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输 ...
- linq的简单增删改查
Linq高集成化的数据访问类,它会自动映射数据库结构,将表名完整映射成为类名,将列名完整映射成字段名数据库数据访问,能大大减少代码量.(反正最后结果就是不用写ado.Net那一套增删改查,有一套封装好 ...
- Linq to sql 增删改查(转帖)
http://blog.csdn.net/pan_junbiao/article/details/7015633 (LINQ To SQL 语法及实例大全) 代码 Code highlightin ...
- net对XML增删改查
Pass:看公司代码,配置下拉框的功能,和下拉框的数字转文字.配置xml里面有下拉的value,name,这样界面直接显示数字,然后转译成中文 1.xml文件格式 <?xml version=& ...
- c# XML增删改查
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- .net xml 增删改查基础复习及干货分享
今天做做项目时,有一个需求需要用到一些固定的文本数据,觉得将这些需要存储的信息直接写在代码里很不友好,放在数据库中存储又觉得不够方便,自然就想到了使用xml来进行操作,我平常在项目中其实用到xml的机 ...
- IDEA+Maven 整合SSM框架实现简单的增删改查(新手入门,傻瓜操作)
原博客地址:https://blog.csdn.net/khxu666/article/details/79851070 选用SSM框架的原因在目前的企业级Java应用中,Spring框架是必须的.S ...
- mysql实现简单的增删改查,放入xmapp自带数据库中
1.mysql概念:SQL-Structured Query Language,是一种特殊的语言,专用于操作关系型数据库服务器中的数据,所有的SQL语句分为四类: (1)DDL(2)DQL(3)DML ...
- c#操作xml增删改查
1.首先新建一个xml文件(Root是我写上的) 2. 3.直接上代码,更直观 (1)初始化xml /// <summary> /// 初始化xml /// </summary> ...
随机推荐
- Linux初学:(一)Linux概述
Linux各个目录的结构介绍 Linux系统以目录的方式来组织和管理系统中的所有文件.Linux系统通过目录将系统中的所有的文件分级.分层组织在一起,形成了Linux文件系统的树形结构层次.以根目录“ ...
- shell中export理解误区
一直以来,以为shell脚本中经过export后的变量会影响到执行这个shell的终端中的环境变量.环境变量这个概念不是shell所独有的,而是linux里面进程所拥有的,shell解释器运行起来就是 ...
- EF6 DataMigration 从入门到进阶
引言 在EntityFramework的开发过程中我们有时因需求变化或者数据结构设计的变化经常会改动表结构.但数据库Schema发生变化时EF会要求我们做DataMigration 和UpdateDa ...
- MMORPG大型游戏设计与开发(服务器 游戏场景 多线程)
多线程在随着cpu发展应用的是越来越多,游戏场景因为其在服务器所占的数据量与逻辑复杂度的原因必须依赖于它.为什么场景要采用多线程?场景的线程是怎样的?场景的线程又是如何创建的?场景的线程又是怎样管理的 ...
- Mongodb的安装
下载:http://www.mongodb.org/downloads mongodb-win32-x86_64-3.2.5-signed.msi 安装: 1.dos下切换至安装目录bin下: 2 ...
- .Net的内置对象之一 Request
一.Request简介 Request对象是.net的内置对象之一,也是.net中常用的对象,用于获取客户端的信息,可以使用Request对象访问任何基于HTTP请求传递的所有信息.通过Request ...
- maven更改编译环境的java版本
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...
- [CareerCup] 6.6 Toggle Lockers 切换锁的状态
6.6 There are 100 closed lockers in a hallway. A man begins by opening all 100 lockers. Next, he clo ...
- Android Hook 借助Xposed
主要就是使用到了Xposed中的两个比较重要的方法,handleLoadPackage获取包加载时候的回调并拿到其对应的classLoader:findAndHookMethod对指定类的方法进行Ho ...
- c# 集合
集合适用于元素个数是动态的情况. 当使用默认的构造函数创建一个空列表后(未指定容量),集合的容量为0:当往集合内添加元素,容量将变为4*2^n(n为0或正整数).当指定集合的大小为size后,容量将变 ...