C#   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c# – 如何读取具有命名空间的XPathDocument大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下示例 XML文件: @H_618_5@ @H_618_5@
<Top xmlns="abbr:SomeNSValue">
  <Next>
    <Other>SomeValue</Other>
  </Next>
</Top>
@H_618_5@我加载它并试着像这样读取它:

@H_618_5@
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);
@H_618_5@这将输出上面显示的完整XMl.不是我想要的(我想选择“下一步”节点的内容.

@H_618_5@但是,如果我从XML中取出xmlns =“abbr:SomeNSValue并重试,那么我得到了我想要的东西:

@H_618_5@
<Other>SomeValue</Other>
@H_618_5@在我的真实场景中,我将XML提供给我,我宁愿不必修改它以取消命名空间.

@H_618_5@有没有办法让它可以使用命名空间?

@H_618_5@注意:重要的是这是我在XML文件中的实际命名空间:xmlns =“urn:hl7-org:v2xml”

解决方法

你的命名空间声明错误: @H_618_5@ @H_618_5@
<Top xmlns:abbr="SomeNSValue">
  <Next>
    <Other>SomeValue</Other>
  </Next>
</Top>
@H_618_5@当你做这个神奇的改变代码的其余部分工作:) ..

大佬总结

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

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。