xml解析错误之xmlns

       在.net中,编写读取xml 的程序中提示"未将对象引用设置到对象的实例",当时一看觉得有点奇怪.为什么在读取xml数据的时候也要实例化一个对象.google了才知道,xml文件中加入了xmlns表示名称空间,但同时Xpath也必须加上.

如之前我们的xml文件定义为:




 

我们读取只需
XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(path);

        string xPath = @"Project/Process";
        XmlNode xn = xmlDoc.SelectSingleNode(xPath);

这样编写

若xml这样定义




 

我们读取的时候必须这样调用

       XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(path);

        XmlNamespaceManager xnm = new XmlNamespaceManager(xmlDoc.NameTable);
        xnm.AddNamespace("mxh", "http://tempuri.org/XMLSchema.xsd");
        string xPath = @"/mxh:Project/mxh:Process";
        XmlNode xn = xmlDoc.SelectSingleNode(xPath, xnm);

ok!又长见识了

你可能感兴趣的:(xml解析错误之xmlns)