【发布时间】:2019-09-27 00:46:43
【问题描述】:
我正在尝试选择一个 XML 节点,其中父节点的另一个子节点包含特定值。
XML 如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<AuthorIT>
<Objects>
<Media>don't care</Media>
<Style>don't care</Style>
<Book>don't care</Book>
<Topic>don't care</Topic>
<Topic>
<Object>
<Description>Performance Evidence</Description>
</Object>
<Text>This is what I want to select</Text>
</Topic>
</Objects>
</AuthorIT>
我在 C# 中使用 XPath。我目前的查询如下所示:(但显然不起作用)
docNav = new XPathDocument(localFile);
nav = docNav.CreateNavigator();
xPath = "//Topic[Object/Description = 'Performance Evidence']/Text";
string value = nav.SelectSingleNode(xPath).Value;
如何从对象/描述值为“性能证据”的主题中获取文本节点的内容?
【问题讨论】:
-
您的 XPath 是正确的。你能具体说明什么不起作用吗?
-
@KirillPolishchuk nav.SelectSingleNode(xPath) 返回 null。如果我的 XPath 正确,我对 c# 的其余部分做错了吗?
-
所以...我一直在尝试通过其他方法获取数据。我可以使用 XmlDocument 和 foreach(xmlNodeList 中的 XmlNode 节点)遍历树,但不能通过 xmlDocument.SelectSingleNode(...)。我宁愿没有 5+ 嵌套的 foreach 循环只是为了找到我想要的节点......有什么建议,还是我应该提出一个新问题?
-
提出了一个新问题。仍然没有解决方案。