CsQuery to parse a collection of li items
c#, csquery, html, web-scraping
Solution
This is done in order to keep `CsQuery` consistent with `jQuery` which behaves the same way. You can convert it back to a `CQ` object by calling the `.Cq()` method as such
foreach (var li in items)
{
var newTournament = false;
var test = li.Cq().Find("header h2");
}
Or if you'd like more `jQuery`ish syntax, the following also works:
foreach (var li in items)
{
var newTournament = false;
var test = CQ.Create(li)["header h2"];
}
Your code, could be re-factored to the following if you'd like:
var texts = CQ.Create(htmlString)[".blog-accordion li header h2"]
.Select(x=>x.Cq().Text());
Problem
Here's my code: ``` CQ dom = CQ.Create(htmlString); var items = dom[".blog-accordion li"]; foreach (var li in items) { var newTournament = false; var test = li["header h2"]; } ``` Inside the foreach loop `li` turns into a `IDomObject` variable and I can no longer drill down further into it. Any suggestions? Here is the example HTML I'm trying to parse: ``` <ul> <li> <header> <h2>Test</h2> </header> </li> <li> <header> <h2>Test 2</h2> </header> </li> <li> <header> <h2>Test 3</h2> </header> </li> </ul> ``` I need to grab the text of each h2 element.