0

我想从各种网站中提取信息。我正在使用 HtmlAgilityPack 和 Linq to XML。到目前为止,我已经设法通过编写以下内容从网站中的单个节点中提取值:

var q = document.DocumentNode.DescendantNodes()
        .Where(n => n.Name == "img" && n.Id == "GraphicalBoard001")
        .FirstOrDefault();

但我对以“GraphicalBoard”开头的整个 img 集合非常感兴趣。我试过类似的东西:

var q2 = document.DocumentNode.DescendantNodes()
        .Where(n => n.Name == "img" && n.Id.Contains("GraphicalBoard"))
        .Select...

但似乎 linq 不喜欢 Contains 方法,因为我在智能感知中丢失了 Select 选项。如何提取 ID 以“GraphicalBoard”开头的所有 img-tags?

4

1 回答 1

1

如何提取 ID 以“GraphicalBoard”开头的所有 img-tags?

您已经拥有它,只需停止调用Where(). 该Where()调用按满足谓词的项目过滤集合。

尽管您应该编写它以便过滤img后代,而不是所有后代。

var query = doc.DocumentNode.Descendants("img")
               .Where(img => img.Id.StartsWith("GraphicalBoard"));
于 2012-08-11T05:24:43.830 回答