今天在做项目的时候需要到配置文件中读取信息,之前自己并没有操作过,今天算是完成自己的一个心愿。读取配置文件中的信息并不难,大致思路是:

1.载入配置文件,获取配置文件的实例。

2.获取配置文件的节点

3.筛选节点

在写入代码前要说明的是要先引用system.xml空间

1.载入配置文件,获取配置文件的实例

public xmldocument getxmldoc(string filename)    // filename其实是配置文件的绝对路径
{
xmldocument returnvalue = new xmldocument();
returnvalue.load(filename.trim());
return returnvalue;
}

2.获取配置文件的节点

public xmlnodelist getnodelist(xmldocument xmldoc, string spath)  //spath是节点的路径,e.g:“/configuration/appsettings/add”
{
xmlnodelist returnvalue = null;
returnvalue = xmldoc.selectnodes(spath.trim());
return returnvalue;
}

3.筛选节点

//循环节点
foreach (xmlnode xn in xmlnodes)
{
if ((xn.attributes.count > 0) && (xn.attributes[keyname.trim()].value.equals(keyvalue.trim())))   // keyname是键的名称,如:<add key=”name” value=”lisi”>,keyname就是key,keyvalue就是name
{
returnvalue = xn.attributes[aname.trim()].value.trim();  // aname是value
break;
}
}

一个完整的方法代码如下:

public string getattributevaluebykey(string fname, string spath, string keyname, string keyvalue, string aname)
{
string returnvalue = null;
//根据文件路径获取文件实例对像
xmlnodelist xmlnodes = this.getnodelist(getxmldoc(fname), spath);

//循环节点
foreach (xmlnode xn in xmlnodes)
{
if ((xn.attributes.count > 0) && (xn.attributes[keyname.trim()].value.equals(keyvalue.trim())))
{
returnvalue = xn.attributes[aname.trim()].value.trim();
break;
}
}

return returnvalue;
}