c# - 根据兄弟节点选择 XML 节点
问题描述
我正在尝试选择一个 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;
如何从具有“性能证据”的对象/描述值的主题中获取文本节点的内容?
解决方案
您应该首先选择包含您的针文本的描述节点,然后返回到公共父节点并选择作为其子节点的文本节点。
//Topic/Object/Description[text()='Performance Evidence']/../../Text/text()
推荐阅读
- javascript - 从另一个组件反应 Js 调用函数
- sql - 如果连续记录具有基于用户输入的相同数据,则计算时间总和
- python - Pandas to_csv 仅保存上次运行我的脚本的数据。如何创建一个大表来保存我的所有模拟?
- bash - 检测一个子网是否包含在另一个子网中
- r - 在聚合数据时生成所有组合,甚至是缺失的组合
- python - matplotlib - 如何使用字符串列表和 int 列表创建条形图
- c# - 如何将 aws redis 与 c# 连接起来
- node.js - 如何在 GitHub Actions/Workflows 配置中安装 imagemagick 和其他自制软件依赖项?
- flutter - 当我使用带有 Cards 和 NetworkImage 的列表视图时,为什么我的应用程序会关闭?
- regex - 使用 awk 提取在正则表达式中匹配的字符串,而不是行