猿问

HTML Agility包-解析表

我想使用HTML敏捷性包来解析复杂网页中的表,但是我迷失在对象模型中。

我看了链接示例,但没有以这种方式找到任何表数据。我可以使用XPath获取表吗?在加载有关如何获取表的数据之后,我基本上迷失了。我之前在Perl中已经做到这一点,虽然有点笨拙,但是可以工作。(HTML::TableParser)。

我也很高兴,如果可以只是洒合适的对象为使解析上的一盏灯。


拉丁的传说
浏览 441回答 3
3回答

HUWWW

我发现为特定元素获取XPath的最简单方法是为Firefox安装FireBug扩展,请转到网站/网页,按F12弹出firebug。正确的选择并右键单击页面上的元素要查询,然后选择“检查元素”萤火虫将选择在IDE中的元素,然后右键单击该元素在Firebug中,选择“复制XPath”这个功能会给你确切的XPath使用HTML Agility Library查询您需要的元素。

陪伴而非守候

我知道这是一个非常老的问题,但这是我的解决方案,有助于可视化表格,因此您可以创建类结构。这也正在使用HTML Agility PackHtmlDocument doc = new HtmlDocument();doc.LoadHtml(@"<html><body><p><table id=""foo""><tr><th>hello</th></tr><tr><td>world</td></tr></table></body></html>");var table = doc.DocumentNode.SelectSingleNode("//table");var tableRows = table.SelectNodes("tr");var columns = tableRows[0].SelectNodes("th/text()");for (int i = 1; i < tableRows.Count; i++){&nbsp; &nbsp; for (int e = 0; e < columns.Count; e++)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; var value = tableRows[i].SelectSingleNode($"td[{e + 1}]");&nbsp; &nbsp; &nbsp; &nbsp; Console.Write(columns[e].InnerText + ":" + value.InnerText);&nbsp; &nbsp; }Console.WriteLine();}
随时随地看视频慕课网APP
我要回答