写得比较啰嗦,自己记载备用
  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的更多相关文章

  1. linq xml读取

    <?xml version="1.0" encoding="UTF-8" ?> <cache> <chatOld> < ...

  2. 七、Linq To XML:XElement、XDocument

    一.概述 LINQ to XMLLINQ to XML 是一种启用了 LINQ 的内存 XML 编程接口,使用它,可以在 .NET Framework.NET Framework 编程语言中处理 XM ...

  3. c# linq的一些运用

    最近在学习xml.linq 网上也找了一些资料都不大全面,因此在这写了一点东西和大家分享,由于本人知识有限,如有错误请指证 可扩展标记语言,标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的 ...

  4. C#图解教程 第十九章 LINQ

    LINQ 什么是LINQLINQ提供程序 匿名类型 方法语法和查询语法查询变量查询表达式的结构 from子句join子句什么是联结查询主体中的from-let-where片段 from子句let子句w ...

  5. LINQ 系列

    C#图解教程 第十九章 LINQ   LINQ 什么是LINQLINQ提供程序 匿名类型 方法语法和查询语法查询变量查询表达式的结构 from子句join子句什么是联结查询主体中的from…let…w ...

  6. 什么是LINQ

    LINQ 什么是LINQLINQ提供程序 匿名类型 方法语法和查询语法查询变量查询表达式的结构 from子句join子句什么是联结查询主体中的from…let…where片段 from子句let子句w ...

  7. LINQ图解教程

    LINQ 什么是LINQLINQ提供程序 匿名类型 方法语法和查询语法查询变量查询表达式的结构 from子句join子句什么是联结查询主体中的from…let…where片段 from子句let子句w ...

  8. VB.NET 定义多行文本字符的几种方式

    vbCrLf 在 .NET 刚刚推出的时候,VB作为一款被微软用来"衬托"C#的语言,在许多细节设计上远不如C#方便. 比如在C#中写一个多行文本,就有各种方式: string s ...

  9. mono for android之文件系统与应用程序首选项(转)

    Aside from persistent files, your application might need to store cache data in a file. To do that, ...

随机推荐

  1. 使用Hexo搭建github博客步骤,超简便

    categories: 工具 tags: git Windows 搭建博客 你只需要node环境和一个github账号就可以开工啦! 本教程适合于Windows环境,Mac教程也大同小异 利用hexo ...

  2. ARM学习笔记3——数据处理指令

    一.数据处理指令概述 1.概念 数据处理指令是指对存放在寄存器中的数据进行处理的指令.主要包括算术指令.逻辑指令.比较与测试指令以及乘法指令 如果在数据处理指令前使用S前缀,指令的执行结果将会影响CP ...

  3. UVa10895 Placing Lampposts

    UVa10895 Placing Lampposts 链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=34290 [思路] ...

  4. uva 10047 the monocyle (四维bfs)

    算法指南白书 维护一个四维数组,走一步更新一步 #include<cstdio> #include<cstring> #include<queue> #includ ...

  5. 基于TCP协议的服务器(多线程)

    import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.IOException; impo ...

  6. javascript中String 对象slice 和substring 区别

      1.slice(start,stop)和substring(start,stop)  方法都是用于提取字符串中从start开始到stop-1间的字符(因为字符串索引是从0开始).其中 start必 ...

  7. express4.x 路由中间件

    路由中间件必须通过app挂载到对应的路由上,如: var express = require('express'); var router = express.Router(); var app = ...

  8. SQLServer加入域后无法远程连接

    如果您更改的SQLServer的远程连接端口(默认1433),加入域后,防火墙会把自定义规则都禁用掉 所以,你得进防火墙,查看,是否防火墙关闭了,我的就是关闭了,找了半天原因

  9. bootstrap学习笔记--bootstrap网格系统

    移动设备优先 移动设备优先是 Bootstrap 3 的最显著的变化. 在之前的 Bootstrap 版本中(直到 2.x),您需要手动引用另一个 CSS,才能让整个项目友好的支持移动设备. 现在不一 ...

  10. Oracle 数据库用户管理

    Oracle 数据库用户管理 Oracle 权限设置      一.权限分类: 系统权限:系统规定用户使用数据库的权限.(系统权限是对用户而言). 实体权限:某种权限用户对其它用户的表或视图的存取权限 ...