2

我正在使用它来获取一些数据:

string s = dom["table .lotto strong"].Text();

但我把所有东西都放在了 1 行。我可以分别解析该表中的每个元素并对其进行操作(例如<br />在每个元素之后添加,因此我不会在 1 行中获取数据)。

令人惊讶的是,文档没有显示迭代。

4

2 回答 2

5

如果你看一下 Text 函数的描述,它只返回一个字符串。基本上,如果您的元素很少,例如 2 个 div,它会将所有内容添加到 1 个字符串中。(如 string.Join())

如果我得到了你想要的东西,那就是这样 =>

dom["table .lotto strong"].Each(dom=> {
   //doing something what you need with dom var (dom is a IDomObject type)
});
于 2013-11-12T00:24:21.027 回答
3

朝觐。我设法做到了。例子:

           CQ dom = CQ.CreateFromUrl("http://www.somewebsite.xxx");

        var rows = dom.Select(".box_results table.results-box_list tr");

        var output = @"<table class='table tableballs'>
                        <thead>
                          <tr>
                            <th></th>
                            <th>Syndicate</th>
                            <th>Draw Date</th>
                            <th>Results</th>
                          </tr>
                        </thead>

                        <tbody>";

        foreach (var row in rows.Has("td"))
        {
            output += "<tr>";
            CQ tdcells = row.Cq().Find("td");

            output += String.Format("<td></td><td>{0}</td><td>{1}</td>",
                tdcells[0].Cq().Text(),
                tdcells[1].Cq().Text());

            var uls = dom.Select(".ball_numbers ul");
            int count = 0;

            output += "<td><ul class='balls'>";
            var numbersTrim = "";

            foreach (var ul in tdcells[2].Cq())
            {
                CQ licells = ul.Cq().Find("li");

                foreach (var li in licells)
                {
                    numbersTrim += String.Join("", "<li>" + licells[count].Cq().Text() + "</li>");
                    count++;
                }
                output += numbersTrim;
            }
            count = 0;
            output += @"</ul></td>
                       </tr>";
        }

        output += @"</table>";

享受老朋友老朋友

于 2013-11-13T14:26:30.400 回答