Entity_Groups 的名称空间是http://www.ca.com/erwin,而这个名称空间没有被加到XmlNamespaceManager 里面,所以结果是null,正确的用法是:
XmlNamespaceManager nsmgr = new XmlNamespaceManager(xml.NameTable);
nsmgr.AddNamespace("ns", "http://www.ca.com/erwin";);
nsmgr.AddNamespace("UDP", "http://www.ca.com/erwin/metadata";);
nsmgr.AddNamespace("EMX", "http://www.ca.com/erwin/data";);
nsmgr.AddNamespace("EM2", "http://www.ca.com/erwin/EM2data";);
XmlNode root = xml.DocumentElement.SelectSingleNode("
EMX:Model/ns:Entity_Groups
");
试试把最后一句改成这样:
XmlNode root = xml.DocumentElement.SelectSingleNode("EMX:Model/EMX:Entity_Groups", nsmgr);
必须不对啊 亲,XmlNode root = xml.DocumentElement.SelectSingleNode("EMX:Model");
这个先查找出父节点,然后再找root的子节点找你需要的节点就行啦~