在不知道父节点的情况下搜索 XML 节点值

Posted

技术标签:

【中文标题】在不知道父节点的情况下搜索 XML 节点值【英文标题】:Search XML node value without knowing parent node 【发布时间】:2011-08-07 16:44:19 【问题描述】:

我想在不知道节点父节点的情况下搜索 XML 节点值。我在 XML 文档中读到,要搜索一个值,您可以使用以下语法:

//book[price>35.00]

这会选择 xmldocument 中任何价格元素的值大于 35.00 的所有 book 元素

我想要做的不是引用 book 节点,而是在 xmldocument 中的任何位置查找所有价格元素,其值大于 35.00。这个怎么写?

我在 C# 中使用 XmlDocument 类。

【问题讨论】:

【参考方案1】:

使用这个 XPath://price[. > 35.00]

【讨论】:

【参考方案2】:

Kirill 展示了一种 XPath 方法 - 如果您使用 .NET 3.5 或更高版本,我个人会尝试使用 LINQ to XML(所以XDocument 而不是XmlDocument)。

然后你会使用:

var prices = doc.Descendants("price")
                .Where(x => (decimal?) x > 35m);

【讨论】:

以上是关于在不知道父节点的情况下搜索 XML 节点值的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有递归或堆栈但使用父指针的情况下按顺序遍历 BST?

将属性和值填充到第4个父节点的XML文件的所有父节点

访问 ElementTree 节点父节点

2021-07-13:恢复二叉搜索树。给你二叉搜索树的根节点 root ,该树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。进阶:使用 O(n) 空间复杂度的解法很容易实现。你能想出

如何在不验证块的情况下设置近节点?

二叉树,二叉搜索树,二叉搜索