好的,所以我需要查询一个实时网站以从表中获取数据,将此 HTML 表放入 DataTable 中,然后使用此数据。到目前为止,我已经设法使用 Html Agility Pack 和 XPath 来访问我需要的表中的每一行,但我知道必须有一种方法可以将其解析为 DataTable。(C#) 我目前使用的代码是:
string htmlCode = "";
using (WebClient client = new WebClient())
{
htmlCode = client.DownloadString("http://www.website.com");
}
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(htmlCode);
//My attempt at LINQ to solve the issue (not sure where to go from here)
var myTable = doc.DocumentNode
.Descendants("table")
.Where(t =>t.Attributes["summary"].Value == "Table One")
.FirstOrDefault();
//Finds all the odd rows (which are the ones I actually need but would prefer a
//DataTable containing all the rows!
foreach (HtmlNode cell in doc.DocumentNode.SelectNodes("//tr[@class='odd']/td"))
{
string test = cell.InnerText;
//Have not gone further than this yet!
}
我正在查询的网站上的 HTML 表如下所示:
<table summary="Table One">
<tbody>
<tr class="odd">
<td>Some Text</td>
<td>Some Value</td>
</tr>
<tr class="even">
<td>Some Text1</td>
<td>Some Value1</td>
</tr>
<tr class="odd">
<td>Some Text2</td>
<td>Some Value2</td>
</tr>
<tr class="even">
<td>Some Text3</td>
<td>Some Value3</td>
</tr>
<tr class="odd">
<td>Some Text4</td>
<td>Some Value4</td>
</tr>
</tbody>
</table>
我不确定使用 LINQ + HAP 或 XPath + HAP 是否更好/更容易获得所需的结果,正如您可能看到的那样,我尝试了两者都取得了有限的成功。这是我第一次编写程序来查询网站甚至以任何方式与网站交互,所以我现在非常不确定!提前感谢您的帮助:)