【问题标题】:Search XML node value without knowing parent node在不知道父节点的情况下搜索 XML 节点值
【发布时间】:2011-08-07 16:44:19
【问题描述】:
我想在不知道节点父节点的情况下搜索 XML 节点值。我在 XML 文档中读到,要搜索一个值,您可以使用以下语法:
//book[price>35.00]
这会选择 xmldocument 中任何价格元素的值大于 35.00 的所有 book 元素
我想要做的不是引用 book 节点,而是在 xmldocument 中的任何位置查找所有价格元素,其值大于 35.00。这个怎么写?
我在 C# 中使用 XmlDocument 类。
【问题讨论】:
标签:
c#
.net
xml
xpath
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);