很久没有做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; }
时间: 2024-10-11 13:22:27