我有一个包含300行的页面,并希望将它们全部加载到列表框中,但不同的列表。
我想将日期放在一个框中,另外两个框中的其他2个数字也放在一个框中。
HTML ex:
<table>
<tr>
<td>01/01/2017</td>
<td>100</td>
<td>500</td>
</tr>
<tr>
<td>01/02/2017</td>
<td>200</td>
<td>400</td>
</tr>
</table>
我的代码提到了这个:
private void LoadHTML()
{
int count = 0;
var link = @"http://example.com/data";
HtmlWeb Web = new HtmlWeb();
var htmlDoc = Web.Load(link);
var node = htmlDoc.DocumentNode.SelectNodes("//td");
foreach (var x in node)
{
count = count + 1;
if (count > 5)
{
listBox1.Items.Add(x.InnerText);
}
}
}
listbox1添加来自x的所有数据,因为一切都是td。 tr会添加每一行,但我没有分割数据。 5之后的计数是我的数据开始的地方。有标题,但我不知道如何从这种形式的特定标题中提取数据。
答案 0 :(得分:0)
首先,您需要获得tr
个节点。
接下来,迭代它并获取td
个节点。
var trNodes = htmlDoc.DocumentNode.SelectNodes("//tr");
foreach (var tr in trNodes)
{
var tdNodes = tr.SelectNodes("./td");
listBox1.Items.Add(tdNodes[0].InnerText);
listBox2.Items.Add(tdNodes[1].InnerText);
listBox3.Items.Add(tdNodes[2].InnerText);
}