Linq to XML 增删改查
Linq to XML同样是对原C#访问XML文件的方法的封装,简化了用xpath进行xml的查询以及增加,修改,删除xml元素的操作。
C#访问XML文件的常用类:XmlDocument,XmlElement,XmlAttribute,XmlNode,XmlText等;
Linq to XML 中的常用类 :XDocument,XElement,XAttribute。 废话不多说了,直接上代码: xml文件数据格式如下
public class DataBaseInfo
{
public string ID { get; set; }
public string Company { get; set; }
public string Server { get; set; }
public string DataBase { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
private static XDocument doc = new XDocument();
public static string filePath = ".\\DataBaseInfo.xml";
public DataBaseInfo() {
doc = XDocument.Load(filePath);
}
public DataBaseInfo(string filepath):this()
{
filePath = filepath;
}
/// <summary>
/// 增
/// </summary>
/// <returns></returns>
public bool Add()
{
XElement db = new XElement("DataBase",
new XAttribute("id", ID),
new XElement("company", new XAttribute("value",Company)),
new XElement("server", new XAttribute("value",Server)),
new XElement("database", new XAttribute("value",DataBase)),
new XElement("username", new XAttribute("value",UserName)),
new XElement("password", new XAttribute("value", Password))
);
try
{
//用XElement的Add方法
//XElement doc = XElement.Load(filePath);
//doc.Add(db);
//用XDocument的Add方法
doc.Element("DataBases").Add(db);
doc.Save(filePath);
return true;
}
catch
{
return false;
}
}
/// <summary>
/// 删
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public static bool Remove(string id)
{
XElement xe = (from db in doc.Element("DataBases").Elements("DataBase") where db.Attribute("id").Value == id select db).Single() as XElement;
try
{
xe.Remove();
doc.Save(filePath);
return true;
}
catch
{
return false;
}
}
/// <summary>
/// 改
/// </summary>
/// <returns></returns>
public bool Modify()
{
XElement xe = (from db in doc.Element("DataBases").Elements("DataBase") where db.Attribute("id").Value.ToString() == ID select db).Single();
try
{
xe.Element("company").Attribute("value").Value = Company;
xe.Element("server").Attribute("value").Value = Server;
xe.Element("database").Attribute("value").Value = DataBase;
xe.Element("username").Attribute("value").Value = UserName;
xe.Element("password").Attribute("value").Value = Password;
doc.Save(filePath);
return true;
}
catch
{
return false;
}
}
/// <summary>
/// 查
/// </summary>
/// <returns></returns>
public List<DataBaseInfo> GetAll()
{
List<DataBaseInfo> dbs = (from db in doc.Element("DataBases").Elements("DataBase")
select new DataBaseInfo
{
ID = db.Attribute("id").Value.ToString(),
Company = db.Element("company").Attribute("value").Value.ToString(),
Server = db.Element("server").Attribute("value").Value.ToString(),
DataBase = db.Element("database").Attribute("value").Value.ToString(),
UserName = db.Element("username").Attribute("value").Value.ToString(),
Password = db.Element("password").Attribute("value").Value.ToString()
}).ToList();
return dbs;
}
怎么样,如何对之前DOM方式访问XML熟悉的话, 是不是发现简单了不少呢?
Linq to XML 增删改查的更多相关文章
- [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界
本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...
- 使用python操作XML增删改查
使用python操作XML增删改查 什么是XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输 ...
- 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 ...
- linq的简单增删改查
Linq高集成化的数据访问类,它会自动映射数据库结构,将表名完整映射成为类名,将列名完整映射成字段名数据库数据访问,能大大减少代码量.(反正最后结果就是不用写ado.Net那一套增删改查,有一套封装好 ...
- .net xml 增删改查基础复习及干货分享
今天做做项目时,有一个需求需要用到一些固定的文本数据,觉得将这些需要存储的信息直接写在代码里很不友好,放在数据库中存储又觉得不够方便,自然就想到了使用xml来进行操作,我平常在项目中其实用到xml的机 ...
- Linq to sql 增删改查(转帖)
http://blog.csdn.net/pan_junbiao/article/details/7015633 (LINQ To SQL 语法及实例大全) 代码 Code highlightin ...
- Linq To Xml操作XML增删改查
对XML文件的操作在平时项目中经常要运用到,比如用于存放一些配置相关的内容:本文将简单运用Linq TO Xml对XML进行操作,主要讲解对XML的创建.加载.增加.查询.修改以及删除:重点在于类XD ...
- 4.Linq To Xml操作XML增删改查
转自https://www.cnblogs.com/wujy/p/3366812.html 对XML文件的操作在平时项目中经常要运用到,比如用于存放一些配置相关的内容:本文将简单运用Linq TO X ...
随机推荐
- 如何获取sdcard的总容量
activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android& ...
- 从Git上导入Maven 项目到Eclipse
Note: 经验之谈,操作过程中有不懂的地方可以留言问. Step: Open the Eclipse: --1.File>>Import>>Git:Project from ...
- ODAC(V9.5.15) 学习笔记(七)TOraUpdateSQL
名称 类型 说明 DataSet 指向需要执行更新操作的数据集 DeleteObject 当执行删除操作时,通过该属性执行另外一个数据集,由后者来执行更多的删除动作 DeleteSQL TString ...
- LightOJ 1030 Discovering Gold(概率DP)题解
题意:1~n每格都有金子,每次掷骰子,掷到多少走几步,拿走那格的金子,问你金子的期望 思路:dp[i]表示从i走到n金子的期望,因为每次最多走1<=x<=6步,所以dp[i] = a[i] ...
- 【Spring Security】四、自定义页面
在前面例子中,登陆页面都是用的Spring Security自己提供的,这明显不符合实际开发场景,同时也没有退出和注销按钮,因此在每次测试的时候都要通过关闭浏览器来注销达到清除session的效果. ...
- Learning to Track at 100 FPS with Deep Regression Networks ECCV 2016 论文笔记
Learning to Track at 100 FPS with Deep Regression Networks ECCV 2016 论文笔记 工程网页:http://davheld.git ...
- [转载]哪个版本的gcc才支持c11
转自:https://blog.csdn.net/haluoluo211/article/details/71141093 哪个版本的gcc才支持c11 2017年05月03日 19:25:43 Fi ...
- mybatis+spring boot, mapper 提示Could not autowire. No beans of … type found
工具及背景: IntelliJ IDEA 2016.1.3 Ultimate.spring boot, maven项目,利用mybatis 注解的方式查询mysql. 业务逻辑关系:controlle ...
- 如何用conda安装软件|处理conda安装工具的动态库问题
conda的确是一个非常好的工具,对于初学者而言,安装软件就跟用XXX软件管理器一样方便.正因为他如此便利,以至于我介绍如何手动安装工具时,总有人问我为啥不用conda. 我用conda,并且用的很好 ...
- Antd-Select组件的深入用法
一.Antd-Select提供几种类型 最基础版只提供下拉功能的选择器 带搜索功能的下拉选择器 可多选的下拉选择器 可搜索.可多选.可随意输入内容的tag下拉选择器(支持自动分词) 多级联动下拉选择器 ...