为了账号安全,请及时绑定邮箱和手机立即绑定

在C#中使用带有默认名称空间的XPath

在C#中使用带有默认名称空间的XPath

C#
当年话下 2019-06-24 13:14:01
在C#中使用带有默认名称空间的XPath我有一个带有默认名称空间的XML文档。我使用XPathNavigator来使用XPath选择一组节点,如下所示:XmlElement myXML = ...;  XPathNavigator navigator = myXML.CreateNavigator(); XPathNodeIterator result = navigator.Select("/outerelement/innerelement");我没有得到任何结果:我假设这是因为我没有指定名称空间。如何在我的选择中包含名称空间?
查看完整描述

3 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

首先,您不需要导航器;SelectNodes/SelectSingleNode就足够了。

但是,您可能需要一个名称空间管理器-例如:

XmlElement el = ...; //TODOXmlNamespaceManager nsmgr = new XmlNamespaceManager(
    el.OwnerDocument.NameTable);nsmgr.AddNamespace("x", el.OwnerDocument.DocumentElement.NamespaceURI);
    var nodes = el.SelectNodes(@"/x:outerelement/x:innerelement", nsmgr);


查看完整回答
反对 回复 2019-06-24
?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

您可能需要尝试XPathVisualizer工具来帮助您度过难关。

XPathVisualizer是免费的,很容易使用。

注意事项:如果您使用的是Windows 7/8,并且看不到“文件”、“编辑”和“帮助”菜单项,请按ALT键。


查看完整回答
反对 回复 2019-06-24
  • 3 回答
  • 0 关注
  • 488 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信