I want to extract information from various websites. I am using HtmlAgilityPack and Linq to XML. So far I have managed to extract the value from a single node in a website by writing:
var q = document.DocumentNode.DescendantNodes()
.Where(n => n.Name == "img" && n.Id == "GraphicalBoard001")
.FirstOrDefault();
But I am really interested in the whole collection of img’s that start with “GraphicalBoard”. I tried something like:
var q2 = document.DocumentNode.DescendantNodes()
.Where(n => n.Name == "img" && n.Id.Contains("GraphicalBoard"))
.Select...
But it seems that linq doesn’t like the Contains-method, since I lose the Select option in intellisense. How can I extract all the img-tags where the Id starts with “GraphicalBoard”?
You had it already, just stop at the call to
Where(). TheWhere()call filters the collection by the items that satisfies the predicate.Though you should write it so you filter through the
imgdescendants, not all descendants.