Linq XML
1 public class XmlFunction
2 {
3 private static XDocument _doc = new XDocument();
4 public static string FilePath = "mydata.xml";
5 public XmlFunction()
6 {
7 _doc = XDocument.Load(FilePath);
8 }
9 public XmlFunction(string filepath)
10 : this()
11 {
12 FilePath = filepath;
13 }
14
15 public static List<DataModel> ReadAll()
16 {
17 var list = new List<DataModel>();
18 var xmllist = _doc.Descendants("datas").Elements("Jijin");
19 foreach (var element in xmllist)
20 {
21 var dataModel = new DataModel();
22 var xElement1 = element.Element("daima");
23 if (xElement1 != null)
24 dataModel.Daima = xElement1.Value == "" ? "" : xElement1.Value;
25 var xElement2 = element.Element("Chicangliang");
26 if (xElement2 != null)
27 dataModel.Chicangliang = xElement2.Value == "" ? "" : xElement2.Value;
28 var xElement3 = element.Element("Mairujia");
29 if (xElement3 != null)
30 dataModel.Mairujia = xElement3.Value == "" ? "" : xElement3.Value;
31 list.Add(dataModel);
32 }
33 return list;
34 }
35
36 public DataModel Readone(string daima)
37 {
38 var selectItem = _doc.Descendants("Jijin").FirstOrDefault(p =>
39 {
40 var element = p.Element("daima");
41 return element != null && element.Value == daima;
42 });
43 var model = new DataModel();
44 if (selectItem == null) return model;
45 model.Daima = daima;
46 var chicangliang = "";
47 var mairujia = "";
48 var sichicangliang = selectItem.Element("Chicangliang");
49 var simairujia = selectItem.Element("Mairujia");
50 if (sichicangliang != null)
51 {
52 if (!string.IsNullOrEmpty(sichicangliang.Value))
53 chicangliang = sichicangliang.Value;
54 }
55 if (simairujia != null)
56 {
57 if (!string.IsNullOrEmpty(simairujia.Value))
58 mairujia = simairujia.Value;
59 }
60 model.Chicangliang = chicangliang;
61 model.Mairujia = mairujia;
62 return model;
63 }
64
65 public static bool Insert(DataModel model)
66 {
67 var db = new XElement("Jijin",
68 new XElement("daima", model.Daima),
69 new XElement("Chicangliang", model.Chicangliang),
70 new XElement("Mairujia", model.Mairujia)
71 );
72 var element = _doc.Element("datas");
73 if (element == null) return false;
74 element.Add(db);
75 _doc.Save(FilePath);
76 return true;
77 }
78
79 public static bool Delete(string path, string node, string daima)
80 {
81 var selectItem = _doc.Descendants("Jijin").FirstOrDefault(p =>
82 {
83 var element = p.Element("daima");
84 return element != null && element.Value == daima;
85 });
86 if (selectItem == null) return false;
87 selectItem.Remove();
88 _doc.Save(FilePath);
89 return true;
90 }
91
92 public static bool Modify(DataModel model)
93 {
94 var selectItem = _doc.Descendants("datas").Elements("Jijin")
95 .FirstOrDefault(p =>
96 {
97 var element = p.Element("daima");
98 return element != null && element.Value == model.Daima;
99 });
if (selectItem == null) return false;
var element1 = selectItem.Element("daima");
if (element1 != null) element1.Value = model.Daima;
var element2 = selectItem.Element("Chicangliang");
if (element2 != null) element2.Value = model.Chicangliang;
var element3 = selectItem.Element("Mairujia");
if (element3 != null) element3.Value = model.Mairujia;
_doc.Save(FilePath);
return true;
}
}
Linq XML的更多相关文章
- linq xml读取
<?xml version="1.0" encoding="UTF-8" ?> <cache> <chatOld> < ...
- 七、Linq To XML:XElement、XDocument
一.概述 LINQ to XMLLINQ to XML 是一种启用了 LINQ 的内存 XML 编程接口,使用它,可以在 .NET Framework.NET Framework 编程语言中处理 XM ...
- c# linq的一些运用
最近在学习xml.linq 网上也找了一些资料都不大全面,因此在这写了一点东西和大家分享,由于本人知识有限,如有错误请指证 可扩展标记语言,标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的 ...
- C#图解教程 第十九章 LINQ
LINQ 什么是LINQLINQ提供程序 匿名类型 方法语法和查询语法查询变量查询表达式的结构 from子句join子句什么是联结查询主体中的from-let-where片段 from子句let子句w ...
- LINQ 系列
C#图解教程 第十九章 LINQ LINQ 什么是LINQLINQ提供程序 匿名类型 方法语法和查询语法查询变量查询表达式的结构 from子句join子句什么是联结查询主体中的from…let…w ...
- 什么是LINQ
LINQ 什么是LINQLINQ提供程序 匿名类型 方法语法和查询语法查询变量查询表达式的结构 from子句join子句什么是联结查询主体中的from…let…where片段 from子句let子句w ...
- LINQ图解教程
LINQ 什么是LINQLINQ提供程序 匿名类型 方法语法和查询语法查询变量查询表达式的结构 from子句join子句什么是联结查询主体中的from…let…where片段 from子句let子句w ...
- VB.NET 定义多行文本字符的几种方式
vbCrLf 在 .NET 刚刚推出的时候,VB作为一款被微软用来"衬托"C#的语言,在许多细节设计上远不如C#方便. 比如在C#中写一个多行文本,就有各种方式: string s ...
- mono for android之文件系统与应用程序首选项(转)
Aside from persistent files, your application might need to store cache data in a file. To do that, ...
随机推荐
- attribute section的用法
1. gcc的__attribute__编译属性 要了解Linux Kernel代码的分段信息,需要了解一下gcc的__attribute__的编绎属性,__attribute__主要用于改变所声明或 ...
- std::move()和std::forward()
std::move(t)负责将t的类型转换为右值引用,这种功能很有用,可以用在swap中,也可以用来解决完美转发. std::move()的源码如下 template<class _Ty> ...
- 一段网上java常见escape和unescape方法的BUG
escape编码和unescape编码,就是将一个字符转换为16进制unicode编码,前面加%字符进行标识. 此处不再多做解释,参考这里:http://www.jb51.net/article/23 ...
- It appears as though you do not have permission to view information for any of the services you requested
- Redis 和 Memcached 的区别详解
Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较: Redis支持服务器端的数据操作:Redis相比Memcached来说,拥有更多的数据结构和并支 ...
- Nginx对于图片,js等静态文件的缓存设置
以下是自学it网--中级班上课笔记 网址:www.zixue.it Nginx对于图片,js等静态文件的缓存设置 注:这个缓存是指针对浏览器所做的缓存,不是指服务器端的数据缓存. 主要知识点: loc ...
- 模仿GsonConverter 写的StringConverter 解析String字符串
使用自己写的StringConverter 来封装的 Converter 来解析String private static final RestAdapter CAMERA_CLIENT_NETWOR ...
- CentOS 7下安装xampp和testlink
记录一下最近安装testlink的经历,供大伙儿参考,有问题可以留言讨论,这里就不截图了 先说下安装版本: CentOS-7.0-1406-x86_64-DVDxampp-linux-1.8.3-5- ...
- js发起长轮询获取推送消息
<!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...
- 驱动lx4f120h,头文件配置,没有完全吃透,望指点
来了块开发板,没接触过,希望能驱动起来,就首先试一下驱动LED,没想到刚开始建好工程问题就来了 使用GPIO驱动,首先想到的是关于GPIO的头文件gpio.h,事实上这个还不够,还需要设置一下系统的配 ...