【发布时间】:2011-04-28 13:22:59
【问题描述】:
为什么这个 Xpath 不能使用 XDocument.XPathSelectElement 工作?
Xpath:
//Plugin/UI[1]/PluginPageCategory[1]/Page[1]/Group[1]/CommandRef[2]
XML
<Plugin xmlns="http://www.MyNamespace.ca/MyPath">
<UI>
<PluginPageCategory>
<Page>
<Group>
<CommandRef>
<Images>
</Images>
</CommandRef>
<CommandRef>
<Images>
</Images>
</CommandRef>
</Group>
</Page>
</PluginPageCategory>
</UI>
</Plugin>
C#代码:
myXDocument.XPathSelectElement("//Plugin/UI[1]/PluginPageCategory[1]/Page[1]/Group[1]/CommandRef[2]", myXDocument.Root.CreateNavigator());
【问题讨论】:
-
xpath查询中没有命名空间信息,可能是这个原因。尝试缩小范围,删除 XML 上的命名空间,看看是否能得到结果?
-
这可能是由于命名空间 - 检查从 XML 中删除它是否修复它,如果是,则需要设置一个 NamespaceManager。
-
@Cumbayah:是的,它有效,谢谢。但是现在我该如何正确处理命名空间呢?