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