0

我正在尝试从网站上的 Html 表中获取数据。不涉及 XML。

<table id="e-cal-table" class="e-cal-table" width="100%">

<tr>

    <th>Date</th>

    <th>Time</th>

    <th>Currency</th>

    <th>Event</th>

    <th>Importance</th>

    <th>Actual</th>

    <th>Forecast</th>

    <th>Previous</th>

    <th>Notes</th>

</tr>

以下结果导致“对象引用未设置为对象的实例”。

HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml("http://www.example.com");

string table = doc.DocumentNode.SelectSingleNode("//table[@id='e-cal-table']").InnerText;

我不知道如何识别表以供将来解析。不幸的是,我能找到的唯一示例与 XML 有关。

4

2 回答 2

1

如果您从string.

如果您想从 url 加载它,请 doc.Load(url);不要 使用doc.LoadHtml(htmlString);

- 编辑 -

对不起,我的错,doc.Load不接受http 你可以使用这样的东西

using (var wc = new WebClient())
{
    doc.LoadHtml(wc.DownloadString(url);
}
于 2012-06-13T20:21:03.370 回答
0

您上面的 HTML 缺少结束表格标记。这可能是问题吗?你可以试试 Hpricot 或 Nokogiri。

于 2012-06-13T20:10:36.480 回答