我正在使用HTMLAgilityPack
解析某些html。我正在使用我期望的结果集,并将xpath
查询与linq查询结合使用。有没有一种方法可以将它们组合成一个LINQ查询?将这两个表达式组合成单个LINQ表达式
var test = doc.DocumentNode.SelectNodes("//div[@class='product']");
foreach (var item in test)
{
var result = from input in item.Descendants("span")
where input.Attributes["class"].Value == "Bold"
where input.InnerHtml.ToUpper() == "GetItem"
select input;
return result;
}
为什么你会要吗?它是否提高可读性或性能?我对此表示怀疑。 – Maarten
顺便说一句,你从每个循环中返回结果,所以只处理'test'中的第一项。 – Maarten
@Maarten它可以提高性能是的。它与你的foreach/List.Add评论有关。如果调用代码只是添加.Any()或.FirstOrDefault()或.Take(),则枚举器将提前中断,而不是贯穿整个XML文档。 – Aron