5

これが私のコードです:

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 要素のテキストを取得する必要があります。

4

1 に答える 1

13

これは、 which が同じように動作するように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());
于 2013-03-31T02:00:50.020 に答える