读取带命名空间的Xml文档的步骤备忘

读取带命名空间的Xml文档的方法备忘

很久没有做xml方面的解析,今天接到一个小任务,需要解析xml里面的字段内容,顺带复习了一下xpath方面的知识。需要解析的xml是那种待namespace的文档,一开始解析就碰到问题,我就感觉是命名空间在作怪,印象中之前也处理过这种问题,但时间久远,都忘记了,也没有记录下来。

折腾了一会总算找到了方法,.NET中读取带xml命名空间的xml文档的方式确实麻烦,不够直接。不管怎样,还是记录一下解决方法,省得以后又要被折腾一次。

StringReader textReader = new StringReader(surveyProject.SurveryContent);
            XPathDocument xd = new XPathDocument(textReader);
            XPathNavigator navigator = xd.CreateNavigator();

               -- 加入命名空间
            NameTable nt = new NameTable();
            XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
            nsmgr.AddNamespace("rc", "http://sechemas.hirede.com/2011/05/Apps/ReferenceChecking");
       
               -- 用的时候还得传入
            XPathNavigator pathNavigator = navigator.SelectSingleNode("//rc:BasicInformation/rc:Name", nsmgr);

            if (pathNavigator != null)
            {
                return pathNavigator.Value;
            }