c# – 如何读取具有命名空间的XPathDocument
发布时间:2020-12-16 01:49:39 所属栏目:百科 来源:网络整理
导读:我有以下示例 XML文件: Top xmlns="abbr:SomeNSValue" Next OtherSomeValue/Other /Next/Top 我加载它并试着像这样读取它: FileStream stream = new FileStream(@".TestXML.xml",FileMode.Open);XPathDocument xPathDocument = new XPathDocument(stream)
我有以下示例
XML文件:
<Top xmlns="abbr:SomeNSValue"> <Next> <Other>SomeValue</Other> </Next> </Top> 我加载它并试着像这样读取它: FileStream stream = new FileStream(@".TestXML.xml",FileMode.Open); XPathDocument xPathDocument = new XPathDocument(stream); XPathNavigator navigator = xPathDocument.CreateNavigator(); XmlNamespaceManager ns = null; if (navigator.NameTable != null) { ns = new XmlNamespaceManager(navigator.NameTable); ns.AddNamespace("abbr","SomeNSValue"); } XPathNodeIterator iterator = navigator.Select("/Top/Next",ns); iterator.MoveNext(); Console.WriteLine(iterator.Current.InnerXml); 这将输出上面显示的完整XML.不是我想要的(我想选择“下一步”节点的内容. 但是,如果我从XML中取出xmlns =“abbr:SomeNSValue并重试,那么我得到了我想要的东西: <Other>SomeValue</Other> 在我的真实场景中,我将XML提供给我,我宁愿不必修改它以取消命名空间. 有没有办法让它可以使用命名空间? 注意:重要的是这是我在XML文件中的实际命名空间:xmlns =“urn:hl7-org:v2xml” 解决方法
你的命名空间声明错误:
<Top xmlns:abbr="SomeNSValue"> <Next> <Other>SomeValue</Other> </Next> </Top> 当你做这个神奇的改变代码的其余部分工作:) .. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |