加上之前学习过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;
}
相关推荐:
SEO关键词推广软件官网-助力企业实现高效精准的网络营销,圈圈ai
SEO中权重是什么意思?让你迅速网站排名的核心秘密!,长颈鹿智能AI点读机
SEO主要是为网站引流吗?深入解析SEO的核心价值,AI算算
SEO招标:如何通过专业SEO服务助力企业脱颖而出,牡丹江关键词排名怎么样
SEO收集:如何通过有效数据收集提升网站排名,鞍山商城网站建设报价
SEO超级,助力企业站点冲刺搜索引擎排名,白云全网营销推广哪家强
ChatGPT的超链接点不开?解决方法一网打尽!,情感ai写作指令是什么
Goanno跨级借鉴:推动创新与提升效率的秘密武器,崇明区智能ai艾灸费用
产品经理seo是什么,产品经理seo是什么意思 ,ai政府公文写作 软件
SEO小白必看!从零起步SEO的秘诀,轻松提升网站排名,南京网站运营优化平台
SEO数量-如何提升你的网站排名与流量?,射阳seo优化五星服务
高效创作新时代AI文案速写工具,让创作更轻松
SEO优化大全:让你的网站排名轻松破局,精准引流更高效!,274357524ai
BingAdapter设置数据后没有显示数据?解决方案在这里!,ai中如何把图变形
从语言助手到智能生活伙伴,未来的智能助手如何改变我们的生活,网站建设分站公司
SEO和品牌营销:如何通过搜索引擎优化打造品牌影响力,建邺seo软件
AI助手Stut:智能时代的创新引擎,开启未来工作新篇章,ai对ai的格斗游戏
seo稿件是什么意思,seo文章写作要求 ,ai写作未来展望和展望
ChatGPT怎么打不开了?解决办法,轻松恢复畅通无阻!,ai订酒店ai对话
SEO软优化:助力网站实现流量爆发的秘密武器,延平区网页seo
ChatGPT不能用了?了解这一背后的真相及解决方法,ai恐怖头像
SEO架构:提升网站流量的核心策略,东营南江全平台营销推广
如何选择适合你的AI工具?全面解析AI工具哪个好用
内容创作新时代:自动生成文章的AI如何改变写作生态
ChatGPT怎么打开不了?全方位解决方案!,大庆ai
文字生成AI开启创作的新纪元
ChatGPT-01:开创人工智能新纪元,AI如何画模糊的云层
SEO优化基础:让你的网站脱颖而出的秘密武器,模仿猫ai
ChatGPT无法加载?检查您的网络设置并尝试重启,轻松解决连接问题!,ai制作艺术字
在线AI文章生成:内容创作新革命
SEO努力:提升网站排名的关键策略,网站建设微企动力
360刷排名工具选哪家?揭秘2025年最强排名优化工具!,ai写作网站哪个好一点
SEO优化:让你的网站在竞争中脱颖而出,临沧seo代理
“洗稿技巧如何让你的文章脱颖而出,轻松提升内容创作水平!”,台州椒江seo企业排名
AI自动化:开启智能未来的无限可能,simplify ai
ChatGPT出问题?背后的原因与解决方案,夸克ai写作生成
ChatGPT模型进化历程:人工智能的智慧革命,ai 喷枪星空
智能AI写作生成:如何借助人工智能提升创作效率与质量
WPQQ-开启数字时代的智能连接新纪元,杭州网站推广厂家电话
seo网络推广要做什么,seo 网络推广 ,ai少女喝药
SEO优化需要花钱吗?从零起步,如何让SEO成为企业的“隐形财富”,字体如何往ai里面倒
ChatGPTWindows版本:让AI助手成为你的工作与生活得力助手,Ai相减变形
OpenAI您的信用卡被拒绝了?请尝试用借记卡支付,轻松解决支付问题!,ai cdr缩略图补丁
ChatGPT-4中文免费破解版:无需付费,体验最强AI助手,ai写作生成器官方下载
ChatGPT怎么突然不能打开了?你需要了解的原因与解决办法,ai写作有什么问题吗怎么解决
AI智能时代的到来:如何利用人工智能推动生活与商业创新,ai相册下载
ChatGPT已识别但不可用?揭秘背后原因与解决方案!,小狸ai和斑马ai语文
ChatGPT昨晚突然不能使用,背后真相令人意想不到!,edga ai
SEO热词:提升网站排名的关键秘诀,一句话营销推广怎么写好
如何用AI写公众号文章?让创作更高效、更轻松