2
我试图用HtmlAgilityPack使用SelectNodes
并从每个节点得到一些价值做一些屏幕抓取返回HtmlAgilityPack的SelectNodes,处置
下面是代码
private readonly HtmlDocument _document = new HtmlDocument();
public void ParseValues(string html)
{
_document.LoadHtml(html);
var tables = _document.DocumentNode.SelectNodes("//table");
foreach (var table in tables)
{
_document.LoadHtml(table.OuterHtml);
var value = _document.DocumentNode.SelectSingleNode("//tbody[1]/tr/td[0]");
}
}
但我注意到尝试时从文档根目录实际搜索的foreach循环中选择子项。一些真正烦人的东西。
问题:
有没有办法选择的值从每个表从
SelectNodes
返回,而不必从HtmlDocument
创建新的文档实例?有没有办法处置
HtmlDocument
,因为我注意到每次使用_document.LoadHtml(html)
时都有内存泄漏;
那么如何处置HtmlDocument? – 2013-02-24 15:19:31
另外我得到这个错误,如果我没有创建一个新的HtmlDocument实例。 startIndex不能大于字符串的长度。 – 2013-02-24 15:46:04
我只是回答你的第一个问题。 – 2013-02-25 07:08:16