当前位置:Gxlcms > asp.net > asp.net Linq to Xml学习笔记

asp.net Linq to Xml学习笔记

时间:2021-07-01 10:21:17 帮助过:30人阅读

加上之前学习过Linq to Entity,因此学习起来也比较随心应手。
以下是项目中某个底层的代码,记下做个备忘,如果能给新手学习Linq to Xml带来帮助,那就再好不过了
XML文件的格式:
代码如下:
  1. <br><?xml version="1.0" encoding="utf-8"?> <br><configuration> <br><OPsystemConfig> <br><MemberCenter> <br><DomainName>DomainName</DomainName> <br><ProtocolName>ProtocolName</ProtocolName> <br><APIKey>APIKey</APIKey> <br><AESKey>AESKey</AESKey> <br><AESVI>AESVI</AESVI> <br></MemberCenter> <br><ChildSystems> <br><ChildSystem> <br><Name>Content</Name> <br><ControllerName>ContentManager</ControllerName> <br></ChildSystem> <br><ChildSystem> <br><Name>Image</Name> <br><ControllerName>ImageManager</ControllerName> <br></ChildSystem> <br><ChildSystem> <br><Name>Comment</Name> <br><ControllerName>CommentManager</ControllerName> <br></ChildSystem> <br><ChildSystem> <br><Name>Vote</Name> <br><ControllerName>VoteManager</ControllerName> <br></ChildSystem> <br></ChildSystems> <br></OPsystemConfig> <br></configuration> <br> <br>XML增,删,改,查 <br><span><u></u></span> 代码如下:<pre class="brush:php;toolbar:false layui-box layui-code-view layui-code-notepad"><ol class="layui-code-ol"><li><br>private string docName = string.Empty;//配置文件路径 <br>#region ISystemModuleConfigService 成员 <br>/// <summary> <br>/// 添加 <br>/// </summary> <br>/// <param name="name"></param> <br>/// <param name="controllerName"></param> <br>/// <returns></returns> <br>public bool Add(string name, string controllerName) <br>{ <br>XDocument xDoc = Load(docName); <br>if (IsExist(name)) <br>{ <br>xDoc.Element("configuration").Element("OPsystemConfig").Element("ChildSystems").Add(new XElement("ChildSystem", <br>new XElement("Name",name), <br>new XElement("ControllerName",controllerName))); <br>xDoc.Save(docName); <br>return true; <br>} <br>return false; <br>} <br>/// <summary> <br>/// 修改 <br>/// </summary> <br>/// <param name="name"></param> <br>/// <param name="controllerName"></param> <br>/// <returns></returns> <br>public bool Modify(string name, string controllerName) <br>{ <br>XDocument xDoc = Load(docName); <br>if (!IsExist(name)) <br>{ <br>var query = from Opsystem in xDoc.Descendants("ChildSystem") <br>where Opsystem.Element("Name").Value == name <br>select Opsystem; <br>foreach (XElement item in query) <br>{ <br>item.Element("ControllerName").Value = controllerName; <br>} <br>xDoc.Save(docName); <br>return true; <br>} <br>return false; <br>} <br>/// <summary> <br>/// 删除 <br>/// </summary> <br>/// <param name="name"></param> <br>/// <returns></returns> <br>public bool Remove(string name) <br>{ <br>XDocument xDoc = Load(docName); <br>if (!IsExist(name)) <br>{ <br>var query = from Opsystem in xDoc.Descendants("ChildSystem") <br>where Opsystem.Element("Name").Value == name <br>select Opsystem; <br>query.Remove(); <br>xDoc.Save(docName); <br>return true; <br>} <br>return false; <br>} <br>/// <summary> <br>/// 获得列表 <br>/// </summary> <br>/// <returns></returns> <br>public IList<SystemModuleConfig> GetList() <br>{ <br>XDocument xDoc = Load(docName); <br>List<SystemModuleConfig> list = new List<SystemModuleConfig>(); <br>var query = from Opsystem in xDoc.Descendants("ChildSystem") <br>select new <br>{ <br>Key = Opsystem.Element("Name").Value, <br>Value = Opsystem.Element("ControllerName").Value <br>}; <br>foreach (var item in query) <br>{ <br>SystemModuleConfig config = new SystemModuleConfig(); <br>config.Name = item.Key; <br>config.ControllerName = item.Value; <br>list.Add(config); <br>} <br>return list; <br>} <br>/// <summary> <br>/// 获得一条ChildSystem数据 <br>/// </summary> <br>/// <param name="name"></param> <br>/// <returns></returns> <br>public SystemModuleConfig GetModel(string name) <br>{ <br>XDocument xDoc = Load(docName); <br>SystemModuleConfig model = new SystemModuleConfig(); <br>var query = from Opsystem in xDoc.Descendants("ChildSystem") <br>where Opsystem.Element("Name").Value == name <br>select new <br>{ <br>Name = Opsystem.Element("Name").Value, <br>ControllerName = Opsystem.Element("ControllerName").Value <br>}; <br>foreach (var item in query) <br>{ <br>model.Name = item.Name; <br>model.ControllerName = item.ControllerName; <br>} <br>return model; <br>} <br>/// <summary> <br>/// 加载Config文件 <br>/// </summary> <br>/// <param name="path"></param> <br>/// <returns></returns> <br>public XDocument Load(string path) <br>{ <br>docName = path; <br>FileInfo file = new FileInfo(docName); <br>file.IsReadOnly = false; <br>return XDocument.Load(docName); <br>} <br>/// <summary> <br>/// 验证Name=name的ChildSystem数据是否存在 <br>/// </summary> <br>/// <param name="name"></param> <br>/// <returns></returns> <br>private bool IsExist(string name) <br>{ <br>XDocument xDoc = Load(docName); <br>var query = from Opsystem in xDoc.Descendants("ChildSystem") <br>where Opsystem.Element("Name").Value == name <br>select new <br>{ <br>Name = Opsystem.Element("Name").Value <br>}; <br>if (query.Count() == 0) <br>{ <br>return true; <br>} <br>return false; <br>} <br></li><li> </li><li> </li></ol></pre>

人气教程排行