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, ...
随机推荐
- UVa 10054 The Necklace BFS+建模欧拉回路
算法指南 主要就是建立欧拉回路 #include <stdio.h> #include <string.h> #include <iostream> #includ ...
- Bzoj 1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路 最短路,floyd
1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 5 ...
- Centos6.4_X64飞信安装
- hdoj 1869 六度分离【最短路径求两两边之间最长边】
六度分离 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- java从mysql导出数据例子
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...
- 【设计模式 - 22】之策略模式(Strategy)
1 模式简介 在策略模式中,一个类的行为或其算法可以在运行时改变.策略模式定义了一系列算法,把它们一个个封装起来,并且使它们可以互相替换. 策略模式的优点: 1) 算法可以自由 ...
- android账号与同步之同步实现
上一篇博文我先介绍了账号与同步的账号管理,这篇就介绍一下还有一部分.就是android给提供的sync同步机制的使用. 事实上sync机制的使用和上一篇博文中介绍的账号管理非常类似,也是基于binde ...
- 将动态库添加到VC程序中
应用程序使用DLL可以采用两种方式:一种是隐式链接,另一种是显式链接.在使用DLL之前首先要知道DLL中函数的结构信息.Visual C++6.0在VC\bin目录下提供了一个名为Dumpbin.ex ...
- hdu1864 最大报销额(01背包)
转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1864 Problem ...
- MySQL5.6监控表之INNODB_METRICS
http://blog.chinaunix.net/uid-10661836-id-4278807.html 在MySQL5.6的Information_Schema引入新的INNODB_METRIC ...