LINQ TO XML之判断不存在行则插入

近日写一个小工具,用到XML作为数据存储。其中要对两个XML文件进行匹配 比较。我现在使用的是LINQ TO XML语法,大致的例子如下

if (File.Exists(cacheFile))
{
    XDocument cachedoc = XDocument.Load(cacheFile);
    var query = from p in cachedoc.Descendants ("file")
                where p.Attribute ("blogId").Value == SourceBlog
                select new { PostId =  p.Attribute("postId").Value, PostName = p.Attribute ("name").Value.Replace("'","") };
//这一段是查询cacheFile的,将所有blogId等于某个blog的记录找出来

    XDocument mappingdoc = XDocument.Load(mappingFile);
    foreach (var item in query) //循环之
    {
       if (!mappingdoc.Descendants("mapping").Any (
              m => m.Attribute("s").Value  == “SourceBlog”
                  && m.Attribute ("p").Value == item.PostId
                  && m.Attribute ("t").Value == “Target”))//这里就是比较 CacheFile与MappingFile是否匹配
        {
            mappingdoc.Element("mappings").Add (
                new XElement("mapping",
                    new XAttribute("s",  “sourceBlog”),
                    new XAttribute("p",  item.PostId),
                    new XAttribute("t",  “Target”)
                    ));
        }
    }
    mappingdoc.Save(mappingFile);

代码比较简单,留为参考

时间: 2024-12-03 04:27:20

LINQ TO XML之判断不存在行则插入的相关文章

Linq To XML学习

这几天抽空看了看C# 3.0的一些新特性,匿名对象.Lambda表达式.Linq等 ,给我很大的冲击.简洁化.人性化.更加可读易理解的代码,让C# 3.0增色不 少.以前我总认为C#语言就是follow Java语言,现在看来微软就是强大,在流 行的基础上创出了自己的个性,漂亮简洁高效的编程语言让人不得不倾心. 因为以前的项目用到Xml操作比较多,我着重看了看Linq To Xml,用 msdn上的话来说,Linq To Xml是LINQ项目的一个组件,它是一种现代化的.在 内存中的XML编程A

使用LINQ to XML来读取XML文档

用于XML的语言级集成查询(LINQ to XML)允许使用标准查询操作符就像树形操作符一样来查询XML数据,它能够提供类似XPath的导航在后代.祖先和兄弟的XML元素中导航.它简化了对XML数据的使用,不必使用额外的语言语法像XPath或XQuery.你可以使用LINQ to XML对你从文件系统.从一个远程web service或从一个内存中的XML内容中获得的XML执行LINQ查询.这篇文章将只关注于使用LINQ从一个XML文件--Customers.xml文件查询XML. 创建一个简单

Linq To Xml学习 - 3.查询、更新、删除

Linq To Xml学习 - 3.查询.更新.删除 文章最后有该示例的XML文档. 查找具有特定属性的元素 XElement root = XElement.Load ("PurchaseOrder.xml"); IEnumerable address = from el in root.Elements("Address") where (string)el.Attribute("Type") == "Billing" s

Linq To Xml学习 - 2.LINQ to XML编程概述

LINQ to XML 类概述 XAttribute 类 XAttribute 表示一个 XML 属性. XCData 类 XCData 表示一个 CDATA 文本节点. XComment 类 XComment 表示一个 XML 注释. XContainer 类 XContainer 是适用于可能具有子节点的所有节点的抽 象基类.下面的类派生自 XContainer 类: XElement XDocument XDeclaration 类 XDeclaration 表示一个 XML 声明.XML

Linq To Xml学习 - 1.LINQ to XML 概述

LINQ to XML 是一种启用了 LINQ 的内存 XML 编程接口,使用它,可以在 .NET Framework 编程语言中处理 XML. 它将 XML 文档置于内存中,这一点很像文档对象模型 (DOM). 您可以查询 和修改 XML 文档,修改之后,可以将其另存为文件,也可以将其序列化然后通 过网络发送. 但是,LINQ to XML 与 DOM 不同: 它提供一种新的对象模型, 这是一种更轻量的模型,使用也更方便,这种模型利用了 Visual C# 2008 在语 言方面的改进. LI

使用linq to xml快速创建自己的Rss

首先引用网络上不知道是谁的一段文字来讲述下什么是linq to xml 如果已 经熟悉的就直接跳过这段: LINQ to XML 是一种启用了 LINQ 的内存 XML 编程接口,使用它,可以在 .NET Framework 编程语言中处理 XML. 它将 XML 文档置于内存中,这一点很像文档对象模型 (DOM). 您可以 查询和修改 XML 文档,修改之后,可以将其另存为文件,也可以将其序列化然 后通过网络发送. 但是,LINQ to XML 与 DOM 不同: 它提供一种新的对象模 型,这

Linq之Linq to XML

目录 写在前面 系列文章  linq to xml  总结 写在前面 在很多情况下,都可以见到使用xml的影子.例如,在 Web 上,在配置文件.Microsoft Office Word 文件(将word文档另存为xml文件,这也提供了一种通过操作xml,操作word的一种方式)以及数据库中,都可以看到 XML.而linq to xml提供了一种操作xml更便捷的方式. 系列文章 Linq之Lambda表达式初步认识 Linq之Lambda进阶 Linq之隐式类型.自动属性.初始化器.匿名类

linq to xml复习

虽然linq to xml随着.net framework3.0一起发布N久了,但因为自己以前参考网上的代码封装了一个xml操作类(当时linq to xml还没出来,这个封闭工具类一直也用得很顺手),所以在项目中也几乎极少用linq to xml,最近业余时间学习silverlight,原来针对winform/webform开发写的一些工具库部分要作修改才能用于silverlight,懒得一一移植了,干脆直接用.net内置的得了,何况自己再写一个,也还是这些玩意儿,有现成的不用白不用,整理了一

c# linq to xml-关于c# winform中XML得问题,可能涉及linq to xml

问题描述 关于c# winform中XML得问题,可能涉及linq to xml 对于图片上面的图元,我需要把它存成XML,需要图元的位置,大小,类型,修改图元以后,旧的信息会删除,存入新的信息.请各位帮帮忙,谢谢. 解决方案 不明白,这个难度有点大啊,你的这三个图片是在一张图上啊.