写得比较啰嗦,自己记载备用
  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. UVa 10054 The Necklace BFS+建模欧拉回路

    算法指南 主要就是建立欧拉回路 #include <stdio.h> #include <string.h> #include <iostream> #includ ...

  2. 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 ...

  3. Centos6.4_X64飞信安装

  4. hdoj 1869 六度分离【最短路径求两两边之间最长边】

    六度分离 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  5. java从mysql导出数据例子

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...

  6. 【设计模式 - 22】之策略模式(Strategy)

    1      模式简介 在策略模式中,一个类的行为或其算法可以在运行时改变.策略模式定义了一系列算法,把它们一个个封装起来,并且使它们可以互相替换. 策略模式的优点: 1)        算法可以自由 ...

  7. android账号与同步之同步实现

    上一篇博文我先介绍了账号与同步的账号管理,这篇就介绍一下还有一部分.就是android给提供的sync同步机制的使用. 事实上sync机制的使用和上一篇博文中介绍的账号管理非常类似,也是基于binde ...

  8. 将动态库添加到VC程序中

    应用程序使用DLL可以采用两种方式:一种是隐式链接,另一种是显式链接.在使用DLL之前首先要知道DLL中函数的结构信息.Visual C++6.0在VC\bin目录下提供了一个名为Dumpbin.ex ...

  9. hdu1864 最大报销额(01背包)

    转载请注明出处:http://blog.csdn.net/u012860063 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1864 Problem ...

  10. MySQL5.6监控表之INNODB_METRICS

    http://blog.chinaunix.net/uid-10661836-id-4278807.html 在MySQL5.6的Information_Schema引入新的INNODB_METRIC ...