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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读取带命名空间的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;
            }

  

以上是关于读取带命名空间的Xml文档的方法备忘的主要内容,如果未能解决你的问题,请参考以下文章

在 Java 中使用命名空间创建 XML 文档

C# 解析带命名空间的xml

linq 解析 带命名空间的xml

xml 中的 Android 谷歌地图片段。我得到“意外的命名空间前缀”

JAXB:如何在解组 XML 文档期间忽略命名空间?

读取具有多个名称空间的子节点