程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> LINQ TO XML之判斷不存在行則插入

LINQ TO XML之判斷不存在行則插入

編輯:關於.NET

近日寫一個小工具,用到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);

代碼比較簡單,留為參考

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved