代碼使用如下
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