<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>
当你做这个神奇的改变代码的其余部分工作:) ..
总结以上是内存溢出为你收集整理的c# – 如何读取具有命名空间的XPathDocument全部内容,希望文章能够帮你解决c# – 如何读取具有命名空间的XPathDocument所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)