我正在通过URL获取html文档WebClient.DownloadString(url)但是很难找到我正在寻找的元素内容.虽然在我周围阅读HtmlDocument,但它有各种各样的东西GetElementById.如何HtmlDocument用返回的html 填充url?
Dan*_*Tao 29
使用SLaks建议的 Html Agility Pack ,这变得非常简单:
string html = webClient.DownloadString(url);
var doc = new HtmlDocument();
doc.LoadHtml(html);
HtmlNode specificNode = doc.GetElementById("nodeId");
HtmlNodeCollection nodesMatchingXPath = doc.DocumentNode.SelectNodes("x/path/nodes");
Run Code Online (Sandbox Code Playgroud)
SLa*_*aks 28
该HtmlDocument班是围绕本地的包装IHtmlDocument2COM接口.
您无法从字符串轻松创建它.
您应该使用HTML Agility Pack.
Dav*_*ret 20
回答原来的问题:
HTMLDocument doc = new HTMLDocument();
IHTMLDocument2 doc2 = (IHTMLDocument2)doc;
doc2.write(fileText);
// now use doc
Run Code Online (Sandbox Code Playgroud)
然后转换回字符串:
doc.documentElement.outerHTML;
Run Code Online (Sandbox Code Playgroud)
Nik*_*aur 11
对于那些不想使用HTML敏捷包并希望使用本机.net代码从字符串中获取HtmlDocument的人来说,这里有一篇关于如何将字符串转换为HtmlDocument的好文章
这是要使用的代码块
public System.Windows.Forms.HtmlDocument GetHtmlDocument(string html)
{
WebBrowser browser = new WebBrowser();
browser.ScriptErrorsSuppressed = true;
browser.DocumentText = html;
browser.Document.OpenNew(true);
browser.Document.Write(html);
browser.Refresh();
return browser.Document;
}
Run Code Online (Sandbox Code Playgroud)