C# 基于同级节点选择XML节点

C# 基于同级节点选择XML节点,c#,xml,xpath,C#,Xml,Xpath,我试图选择一个XML节点,其中父节点的另一个子节点包含一个特定值 XML如下所示: 不在乎 不在乎 不在乎 不在乎 性能证据 这就是我想要选择的 我在C中使用XPath。目前我的查询是这样的:但显然不起作用 docNav=新的XPathDocumentlocalFile; nav=docNav.CreateNavigator; xPath=//主题[对象/描述='性能证据]]/Text; 字符串值=nav.SelectSingleNodexPath.value; 如何从具有性能证据的对象/描述值

我试图选择一个XML节点,其中父节点的另一个子节点包含一个特定值

XML如下所示:

不在乎 不在乎 不在乎 不在乎 性能证据 这就是我想要选择的 我在C中使用XPath。目前我的查询是这样的:但显然不起作用

docNav=新的XPathDocumentlocalFile; nav=docNav.CreateNavigator; xPath=//主题[对象/描述='性能证据]]/Text; 字符串值=nav.SelectSingleNodexPath.value;
如何从具有性能证据的对象/描述值的主题中获取文本节点的内容?

您应该首先选择包含指针文本的描述节点,然后移回公共父节点并选择作为其子节点的文本节点

//Topic/Object/Description[text()='Performance Evidence']/../../Text/text()
正如在评论中所说,我的XPath是正确的

我在示例XML中遗漏的是解决方案的关键。。。名称空间


我找到了另一个问题的答案:

您的XPath是正确的。你能具体说明什么不起作用吗?@KirillPolishchuk nav.selectSingleNodeExpath返回null。如果我的XPath是正确的,那么我是否对c语言的其余部分做了一些错误的事情呢。。。我一直在尝试通过其他方法获取数据。我可以使用xmlNodeList中的XmlDocument和foreachXmlNode节点遍历树,但不能通过XmlDocument。选择SingleNode。。。。我不希望有5+嵌套的foreach循环只是为了找到我想要的节点。。。有什么建议吗,或者我应该把这变成一个新问题吗?提出了一个新问题。仍然没有解决办法。