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, ...
随机推荐
- 使用Hexo搭建github博客步骤,超简便
categories: 工具 tags: git Windows 搭建博客 你只需要node环境和一个github账号就可以开工啦! 本教程适合于Windows环境,Mac教程也大同小异 利用hexo ...
- ARM学习笔记3——数据处理指令
一.数据处理指令概述 1.概念 数据处理指令是指对存放在寄存器中的数据进行处理的指令.主要包括算术指令.逻辑指令.比较与测试指令以及乘法指令 如果在数据处理指令前使用S前缀,指令的执行结果将会影响CP ...
- UVa10895 Placing Lampposts
UVa10895 Placing Lampposts 链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34290 [思路] ...
- uva 10047 the monocyle (四维bfs)
算法指南白书 维护一个四维数组,走一步更新一步 #include<cstdio> #include<cstring> #include<queue> #includ ...
- 基于TCP协议的服务器(多线程)
import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.IOException; impo ...
- javascript中String 对象slice 和substring 区别
1.slice(start,stop)和substring(start,stop) 方法都是用于提取字符串中从start开始到stop-1间的字符(因为字符串索引是从0开始).其中 start必 ...
- express4.x 路由中间件
路由中间件必须通过app挂载到对应的路由上,如: var express = require('express'); var router = express.Router(); var app = ...
- SQLServer加入域后无法远程连接
如果您更改的SQLServer的远程连接端口(默认1433),加入域后,防火墙会把自定义规则都禁用掉 所以,你得进防火墙,查看,是否防火墙关闭了,我的就是关闭了,找了半天原因
- bootstrap学习笔记--bootstrap网格系统
移动设备优先 移动设备优先是 Bootstrap 3 的最显著的变化. 在之前的 Bootstrap 版本中(直到 2.x),您需要手动引用另一个 CSS,才能让整个项目友好的支持移动设备. 现在不一 ...
- Oracle 数据库用户管理
Oracle 数据库用户管理 Oracle 权限设置 一.权限分类: 系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限 ...