写得比较啰嗦,自己记载备用
  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. [转]NHibernate之旅(5):探索Insert, Update, Delete操作

    本节内容 操作数据概述 1.新建对象 2.删除对象 3.更新对象 4.保存更新对象 结语 操作数据概述 我们常常所说的一个工作单元,通常是执行1个或多个操作,对这些操作要么提交要么放弃/回滚.想想使用 ...

  2. Python初始值表示为无穷大

    之前只知道设置变量的初始值为0.今天在写网络路径分析的时候,为了找到离任意坐标距离最近的节点,初始设置最短距离为无穷大,然后不断的去替换,直到找到最近的节点. 刚开始设置是min_dis = 9999 ...

  3. rtsp的东西

    http://ubuntuforums.org/showthread.php?t=1544946 http://www.live555.com/liveCaster/liveInput.html ht ...

  4. 【杭州(含嘉兴,绍兴,金华,湖州,义乌)】Uber优步司机奖励政策(2月1日~2月7日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  5. C#Stimulator项目>>>C/C++ DLL的生成和调用,Windows下的多线程

    Windows下的多线程 http://blog.csdn.net/ganpengjin1/article/category/2541791 使用C/C++建立DLL,环境VS2013 新建Win32 ...

  6. 了解node.js

    转载自http://debuggable.com/posts/understanding-node-js:4bd98440-45e4-4a9a-8ef7-0f7ecbdd56cb 当我向人们介绍nod ...

  7. 如何将angularJs项目与requireJs集成

    关于angularjs.requirejs的基础知识请自行学习 一.简单事例的项目目录如下: -index.html -scripts文件夹 --controller文件夹 --- mianContr ...

  8. richTextBoxFontClass

    使用 private void button1_Click(object sender, EventArgs e) { RichTextBoxCtrl.richTextBoxFontClass r = ...

  9. 【MongoDB安装和基础学习系列】

    转:http://www.cnblogs.com/lipan/archive/2011/03/08/1977691.html 系列目录 MongoDB学习笔记(一) MongoDB介绍及安装     ...

  10. vi 快捷键

    屏幕翻滚类命令Ctrl+u:向文件首翻半屏Ctrl+d:向文件尾翻半屏Ctrl+f:向文件尾翻一屏Ctrl+b:向文件首翻一屏 shift+g:到尾部 H:跳到第一行.M:跳到中间.L:跳到最后一行. ...