CsQuery解析李项的集合(CsQuery to parse a collection of li

2019-08-18 08:31发布

这里是我的代码:

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元素的文本。

Answer 1:

这样做是为了保持做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());


文章来源: CsQuery to parse a collection of li items