Parsing web.config with XmlDocument.SelectSingleNode

来源:互联网 发布:vb循环语句 for next 编辑:程序博客网 时间:2024/06/14 04:08

问题现象:

 

I have an utility that modified ASP.NET web.config using code like this:
 

XmlDocument document = new XmlDocument();
document.Load(sConfigFileName);
XmlNode nodeParent = document.SelectSingleNode("/configuration/system.web");
 
I found that this code doesn't work with VS 2005 (SelectSingleNode returns null) because configuration element has xmlns
 
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> .
 
I was able to delete xmlns attribute without any visible side effects to make SelectSingleNode("/configuration/system.web") working .
 
But it will be probably required to use new classes in Configuration namespace or use XmlNamespaceManager.

 

 

解决方案:

 

XmlDocument document = new XmlDocument();
document.Load(sConfigFileName);
XmlNamespaceManager ns = new XmlNamespaceManager(document.NameTable);

ns.AddNamespace("x", "http://schemas.microsoft.com/.NetConfiguration/v2.0");

XmlNode myNode = document.SelectSingleNode("/x:configuration/x:system.web",ns);

 

试过可行

 

原文地址:http://geekswithblogs.net/mnf/archive/2006/02/02/67909.aspx