c# - 如何根据包含在非唯一 XMLTag 中的唯一值定义智能 xPath,以便与 C# 中的 XmlNode.SelectNodes() 方法一起使用?
问题描述
我有一个 XML 结构:
<Node>
<SubId> 15 </SubId>
<SubParam> someValue </SubParam>
</Node>
<Node>
<SubId> 19 </SubId>
<SubParam> someValue </SubParam>
</Node>
<Node>
<SubId> 22 </SubId>
<SubParam> someValue </SubParam>
</Node>
如果该节点中的 SubId 标记的值为 15,我想选择该节点。
我当前的代码:
if (xPath.Contains("Node"))
{
XmlNodeList fieldsToTest = root.SelectNodes(xPath);
foreach (XmlNode field in fieldsToTest)
{
if (field.SelectSingleNode("SubId").InnerText.Equals("15"))
{
do something;
}
}
}
有没有办法直接选择 SubId 为“15”的节点而不选择所有节点元素然后遍历列表?我的猜测是必须有一种方法为此目的定义智能 xPath。
解决方案
只需使用这个 XPath:
//Node[SubId = 15]
推荐阅读
- html - 内联 SVG:从旧浏览器隐藏纯文本的方法?
- maven - 如何在 Spring Boot Web 应用程序中使用 html 和 jsp 页面
- c# - 启用完美前向保密和禁用弱密码后无法与服务器通信
- dart - Flutter中imageUrl动态变化时CachedNetworkImage不显示占位符
- django - 优化 Django 文本字段查找
- excel - 'for' 命令并通过进行网络抓取来用 pandas 填充 excel 表
- python - Python,在循环中初始化类属性
- android - java.lang.IllegalStateException:未使用 YouTubeThumbnailView 初始化 YouTubeServiceEntity
- r - 在 R 中创建驱动时间等时线
- javascript - 如何在平面列表渲染函数中调用其他函数?