c# – 如何读取具有命名空间的XPathDocument

c# – 如何读取具有命名空间的XPathDocument,第1张

概述我有以下示例 XML文件: <Top xmlns="abbr:SomeNSValue"> <Next> <Other>SomeValue</Other> </Next></Top> 我加载它并试着像这样读取它: FileStream stream = new FileStream(@".\TestXML.xml", FileMode.Open);XPathDocument xP 我有以下示例 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>

当你做这个神奇的改变代码的其余部分工作:) ..

总结

以上是内存溢出为你收集整理的c# – 如何读取具有命名空间的XPathDocument全部内容,希望文章能够帮你解决c# – 如何读取具有命名空间的XPathDocument所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1217463.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存