巴布鱼——软件工程师的家园

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4759|回复: 0
打印 上一主题 下一主题

[C#] 代码编辑web.config文件

[复制链接]

40

主题

41

帖子

356

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
356
QQ
跳转到指定楼层
楼主
发表于 2015-3-3 10:26:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 笒羽 于 2015-3-3 10:35 编辑

一、web.config是什么文件?Web.config文件是一个XML文本文件,因此在C#代码表示对象为XmlDocument
二、加载XML文件
既然我们已经知道对象为XmlDocument,那么我们应该先实例化一个对象,然后加载XML文件内容,代码如下:
  1. string XmlFilePath="d:\wwwroot\web.config";
  2. XmlDocument xdoc = new XmlDocument();
  3. xdoc.Load(XmlFilePath);
复制代码
三、节点、元素、属性
1、认识对象
XML文件的三个基本对象有节点(XmlNode)、元素(XmlElement)、属性(Attribute
用以下XML文件内容为例:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <appSettings>
    <add key="testAgentUser" value="1"/>
    <add key="adminUser" value="babuyu"/>
</appSettings>

</configuration>
configuration、appSettings都是节点对象,它们有起始标记和闭合标记;configuration->appSettings->add为元素,configuration->appSettings->add->key为属性名、testAgentUser为属性值
2、获取节点,方法如下:
  1. public XmlNode GetNode(string xPath)
  2. {
  3. string[] PathList = xPath.Trim('/').Split('/');
  4. XmlNode xn = xdoc.SelectSingleNode("/");
  5. string xnPath = "";
  6. for (int i = 0; i < PathList.Length; i++)
  7. {
  8. if (!string.IsNullOrEmpty(PathList[i]))
  9. {
  10. xnPath += "/" + PathList[i];
  11. XmlNode NowNode = xdoc.SelectSingleNode(xnPath);
  12. if (NowNode == null)
  13. {
  14. XmlNode newNode = xdoc.CreateNode(XmlNodeType.Element, PathList[i], null);
  15. xn.AppendChild(newNode);
  16. xn = xdoc.SelectSingleNode(xnPath);
  17. }
  18. else
  19. {
  20. xn = xdoc.SelectSingleNode(xnPath);
  21. }
  22. }
  23. }
  24. return xn;
  25. }
复制代码
得到节点对象后便可对其进行操作,如:xn.Attributes添加属性,xn.RemoveAll删除节点等,具体的请参考MSDN介绍:
https://msdn.microsoft.com/zh-cn/library/system.xml.xmlnode(VS.80).aspx
3、添加元素,方法如下:
XmlElement el = xdoc.CreateElement(ElementName);//创建元素
el.SetAttribute(s, v);//设置元素属性
xn.AppendChild(el);//将元素拼接到节点


4、保存XML文件编辑
xdoc.Save(FilePath);



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|巴布鱼

GMT+8, 2024-4-27 07:18 , Processed in 0.074219 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表