我一直在尝试一段时间,但这是我的情况;用HtmlAgilityPack读出C#中的表格
我的朋友的网络应用程序运行一个非常简单的HTML网站为图表生成数据。我想从该表中的某个值获取某些值,因为他需要将这些信息存储到数据库中。
所以这是HTML表的一部分;
...
<tr>
<td width=30 align=center bgcolor=#006699 class=W><font color=white>1</font></td>
<td width=50 bgcolor=#FFFFFF align=center>7387</td>
<td width=30 height=25 align=center bgcolor=#006699 class=W><font color=white>2</font></td>
<td width=50 bgcolor=#FFFFFF align=center>2881</td>
<td width=30 height=25 align=center bgcolor=#006699 class=W><font color=white>3</font></td>
<td width=50 bgcolor=#FFFFFF align=center>8782</td>
<td width=30 height=25 align=center bgcolor=#006699 class=W><font color=white>4</font></td>
<td width=50 bgcolor=#FFFFFF align=center>5297</td>
<td width=30 height=25 align=center bgcolor=#006699 class=W><font color=white>5</font></td>
<td width=50 bgcolor=#FFFFFF align=center>749</td>
</tr>
<tr>
<td align=center bgcolor=#006699 class=W><font color=white>6</font></td>
<td width=50 bgcolor=#FFFFFF align=center>3136</td>
<td height=25 align=center bgcolor=#006699 class=W><font color=white>7</font></td>
<td width=50 bgcolor=#FFFFFF align=center>8768</td>
<td height=25 align=center bgcolor=#006699 class=W><font color=white>8</font></td>
<td width=50 bgcolor=#FFFFFF align=center>9548</td>
<td height=25 align=center bgcolor=#006699 class=W><font color=white>9</font></td>
<td width=50 bgcolor=#FFFFFF align=center>6565</td>
<td height=25 align=center bgcolor=#006699 class=W><font color=white>10</font></td>
<td width=50 bgcolor=#FFFFFF align=center>142</td>
</tr>
...
我想达到的是;
- 我得到两个数字 - 例如1和8
- 我的应用程序检查页面的HTML和选择两个
td
(如上所示)包含数字。 - 然后,我必须得到NEXT
td
的值。
这个的输出将是1=7387
和8=9548
。 我试图找到包含给定数字的两个td
后,我卡住了很快。
到目前为止我的C#代码;
using (WebClient webClient = new WebClient())
{
string completeHTMLCode = webClient.DownloadString("someUrl.php?getChartData=" + chartId);
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(completeHTMLCode);
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//td[@...]"))
{
}
}
我在这里尝试一些不可能的事情吗?
正在添加它。抱歉。 – Roel 2013-03-23 00:42:22
HTML是相当可怕的,但我认为你正在尝试听起来真的很容易。我会尽量使用CSQuery(虽然它可能会阻塞你输入中相当讨厌的HTML)。 – Nenotlep 2013-03-23 00:49:59
我希望我能控制HTML。这确实很糟糕,如果你看到整个文档,你会感到震惊。我将看看CSQuery。 – Roel 2013-03-23 00:56:48