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, ...
随机推荐
- MD5Helper辅助类
DES加密和解密 public class MD5Helper { ///DES加密 ///sKey public string MD5Encrypt(string pToEncrypt, strin ...
- JavaScript---网络编程(1)-介绍、变量、运算符与语句
JavaScript也是一种编程语言.并不是Java的分支哦. 可以直接在浏览器中运行的编程语言. JavaScript 的历史故事: 1.JavaScript语言与名称的由来(Netscape,Su ...
- leetcode reverse integer&&Palindrome Number
public class Solution { public int reverse(int x) { int ret=0; while(x!=0) { int t=x%10; ret=ret*10+ ...
- linux 双网关双IP设置
server:CentOS5.8 ip:172.16.8.11 Gateway:172.16.8.1 ip:10.120.6.78 Gateway:10.120.6.1 网卡配置: eth0 poin ...
- 从源码编译rpi的内核
Kernel Building https://www.raspberrypi.org/documentation/linux/kernel/building.md There are two mai ...
- h264码流分析及其工具
总的来说H264的码流的打包方式有两种,一种为annex-b byte stream format的格式,这个是绝大部分编码器的默认输出格式,就是每个帧的开头的3~4个字节是H264的start_co ...
- curl测试puppet http api接口
---恢复内容开始--- 基于证书密钥对 curl --cert /etc/puppetlabs/puppet/ssl/certs/master.puppet.org.pem --key /etc/p ...
- IAR右键无法跳转到定义 的解决方法
用IAR编译程序,有时候编译通过了,但是右键无法GO TO Definition 解决方法有两个: 第一.Tools -> Option -> Project 把Generate br ...
- Cocos2d 3.0继承自Sprite的类在addChild后出现故障
当继承自Sprite的类被addChild到其它的Node里后出现例如以下图问题,说明没有调用父类Sprite::init()的方法.由于父类Sprite里的_textureAtlas须要初始化为nu ...
- Java实现简单版SVM
Java实现简单版SVM 近期的图像分类工作要用到latent svm,为了更加深入了解svm,自己动手实现一个简单版的. 之所以说是简单版,由于没实用到拉格朗日,对偶,核函数等等.而 ...