代码使用如下
XmlNode root = xmlDoc.SelectSingleNode("Project");
返回的root一直是null
查了xml文件中确实是有Project节点,部分内容如下
<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
原因是节点上声明了命名空间,所以在访问的时候也要使用命名空间,加入如下代码
XmlNamespaceManager nsMgr = new XmlNamespaceManager(xmlDoc.NameTable); nsMgr.AddNamespace("ns", "http://schemas.microsoft.com/developer/msbuild/2003");
查找节点的时候则需要使用命名空间
XmlNode root = xmlDoc.SelectSingleNode("/ns:Project",nsMgr);
这样就能找到了
多谢http://stackoverflow.com/questions/1766254/selectsinglenode-always-returns-null