问题现象:
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