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.
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());
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With