在不知道父节点的情况下搜索 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 节点值的主要内容,如果未能解决你的问题,请参考以下文章