这是我的代码:
CQ dom = CQ.Create(htmlString);
var items = dom[".blog-accordion li"];
foreach (var li in items)
{
var newTournament = false;
var test = li["header h2"];
}
在 foreach 循环中,li
变成了一个 IDomObject
变量,我无法再深入研究它。
有什么建议吗?这是我尝试解析的示例 HTML:
<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>
我需要抓取每个 h2 元素的文本。
最佳答案
这样做是为了使 CsQuery
与行为相同的 jQuery
保持一致。您可以通过调用 .Cq()
方法将其转换回 CQ
对象
foreach (var li in items)
{
var newTournament = false;
var test = li.Cq().Find("header h2");
}
或者,如果您想要更多 jQuery
风格的语法,以下内容也适用:
foreach (var li in items)
{
var newTournament = false;
var test = CQ.Create(li)["header h2"];
}
如果您愿意,您的代码可以重构为以下内容:
var texts = CQ.Create(htmlString)[".blog-accordion li header h2"]
.Select(x=>x.Cq().Text());
关于c# - CsQuery 解析 li 项的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15725531/