一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - asp.net Linq to Xml學習筆記

asp.net Linq to Xml學習筆記

2019-07-22 11:11ASP.NET之家 ASP.NET教程

之前都沒有學習過關于XML文件的操作,由于最近開發的項目需要用到,開始時學習了原始的XML文件操作方法,看了半天,也看的頭暈眼花,沒學習到真正的用法,后來在同事的推薦下學習了Linq to Xml

加上之前學習過Linq to Entity,因此學習起來也比較隨心應手。 
以下是項目中某個底層的代碼,記下做個備忘,如果能給新手學習Linq to Xml帶來幫助,那就再好不過了 
XML文件的格式: 

復制代碼代碼如下:


<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
<OPsystemConfig> 
<MemberCenter> 
<DomainName>DomainName</DomainName> 
<ProtocolName>ProtocolName</ProtocolName> 
<APIKey>APIKey</APIKey> 
<AESKey>AESKey</AESKey> 
<AESVI>AESVI</AESVI> 
</MemberCenter> 
<ChildSystems> 
<ChildSystem> 
<Name>Content</Name> 
<ControllerName>ContentManager</ControllerName> 
</ChildSystem> 
<ChildSystem> 
<Name>Image</Name> 
<ControllerName>ImageManager</ControllerName> 
</ChildSystem> 
<ChildSystem> 
<Name>Comment</Name> 
<ControllerName>CommentManager</ControllerName> 
</ChildSystem> 
<ChildSystem> 
<Name>Vote</Name> 
<ControllerName>VoteManager</ControllerName> 
</ChildSystem> 
</ChildSystems> 
</OPsystemConfig> 
</configuration> 


XML增,刪,改,查 

復制代碼代碼如下:


private string docName = string.Empty;//配置文件路徑 
#region ISystemModuleConfigService 成員 
/// <summary> 
/// 添加 
/// </summary> 
/// <param name="name"></param> 
/// <param name="controllerName"></param> 
/// <returns></returns> 
public bool Add(string name, string controllerName) 

XDocument xDoc = Load(docName); 
if (IsExist(name)) 

xDoc.Element("configuration").Element("OPsystemConfig").Element("ChildSystems").Add(new XElement("ChildSystem", 
new XElement("Name",name), 
new XElement("ControllerName",controllerName))); 
xDoc.Save(docName); 
return true; 

return false; 

/// <summary> 
/// 修改 
/// </summary> 
/// <param name="name"></param> 
/// <param name="controllerName"></param> 
/// <returns></returns> 
public bool Modify(string name, string controllerName) 

XDocument xDoc = Load(docName); 
if (!IsExist(name)) 

var query = from Opsystem in xDoc.Descendants("ChildSystem") 
where Opsystem.Element("Name").Value == name 
select Opsystem; 
foreach (XElement item in query) 

item.Element("ControllerName").Value = controllerName; 

xDoc.Save(docName); 
return true; 

return false; 

/// <summary> 
/// 刪除 
/// </summary> 
/// <param name="name"></param> 
/// <returns></returns> 
public bool Remove(string name) 

XDocument xDoc = Load(docName); 
if (!IsExist(name)) 

var query = from Opsystem in xDoc.Descendants("ChildSystem") 
where Opsystem.Element("Name").Value == name 
select Opsystem; 
query.Remove(); 
xDoc.Save(docName); 
return true; 

return false; 

/// <summary> 
/// 獲得列表 
/// </summary> 
/// <returns></returns> 
public IList<SystemModuleConfig> GetList() 

XDocument xDoc = Load(docName); 
List<SystemModuleConfig> list = new List<SystemModuleConfig>(); 
var query = from Opsystem in xDoc.Descendants("ChildSystem") 
select new 

Key = Opsystem.Element("Name").Value, 
Value = Opsystem.Element("ControllerName").Value 
}; 
foreach (var item in query) 

SystemModuleConfig config = new SystemModuleConfig(); 
config.Name = item.Key; 
config.ControllerName = item.Value; 
list.Add(config); 

return list; 

/// <summary> 
/// 獲得一條ChildSystem數據 
/// </summary> 
/// <param name="name"></param> 
/// <returns></returns> 
public SystemModuleConfig GetModel(string name) 

XDocument xDoc = Load(docName); 
SystemModuleConfig model = new SystemModuleConfig(); 
var query = from Opsystem in xDoc.Descendants("ChildSystem") 
where Opsystem.Element("Name").Value == name 
select new 

Name = Opsystem.Element("Name").Value, 
ControllerName = Opsystem.Element("ControllerName").Value 
}; 
foreach (var item in query) 

model.Name = item.Name; 
model.ControllerName = item.ControllerName; 

return model; 

/// <summary> 
/// 加載Config文件 
/// </summary> 
/// <param name="path"></param> 
/// <returns></returns> 
public XDocument Load(string path) 

docName = path; 
FileInfo file = new FileInfo(docName); 
file.IsReadOnly = false; 
return XDocument.Load(docName); 

/// <summary> 
/// 驗證Name=name的ChildSystem數據是否存在 
/// </summary> 
/// <param name="name"></param> 
/// <returns></returns> 
private bool IsExist(string name) 

XDocument xDoc = Load(docName); 
var query = from Opsystem in xDoc.Descendants("ChildSystem") 
where Opsystem.Element("Name").Value == name 
select new 

Name = Opsystem.Element("Name").Value 
}; 
if (query.Count() == 0) 

return true; 

return false; 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲乱码一区二区三区国产精品 | 成人私人影院www片免费高清 | 九九九国产在线 | 欧美日韩国产超高清免费看片 | 亚洲国产欧美在线人成aaaa20 | 亚洲人成激情在线播放 | 韩国美女豪爽一级毛片 | 视频一区二区国产 | 日韩精品一区二区 | 波多野给衣一区二区三区 | 亚洲一区二区日韩欧美gif | 亚洲国产欧美久久香综合 | 日本高清视频网站www | 国内小情侣一二三区在线视频 | 超级碰碰免费视频 | 天天久久综合网站 | 桃色综合网 | 国产3344视频在线观看免费 | 污文啊好棒棒啊好了 | 无人在线观看免费高清视频播放 | 隔壁老王国产精品福利 | 色图图片| 久久精品中文騷妇女内射 | 四虎地址8848aa4hc44四虎 四虎成人永久地址 | 成年美女黄网色大观看全 | tk白嫩玉足脚心vk | 天堂网在线网站成人午夜网站 | 日本免费看 | 精品成人网 | 性夜夜春夜夜爽AA片A | 亚洲国产精品ⅴa在线观看 亚洲国产高清一区二区三区 | 91欧洲在线视精品在亚洲 | 美女女女女女女bbbbbb毛片 | 亚洲欧美日韩精品久久亚洲区 | 日韩大片在线 | 好看的亚洲视频 | 久久热这里面只有精品 | 亚洲视频日韩 | 国产激情视频 | 亚洲欧美日韩另类精品一区二区三区 | 娇妻终于接受了3p的调教 |