Private Sub GetUrl(html As String) Dim doc, a Dim s As String Set doc = CreateObject("HTMLFILE") doc.Write html doc.Close For Each a In doc.getElementsByTagName("a") If a.classname = "someone" Then s = s & a.innertext & "--" & a.href & vbCrLf End If Next End Sub
上面的VB6将一个html页面的字符串"<!DOCTYPE html><html>... ...</html>"装载进DOM树来解析.不需要使用webbrowser控件.
而我搜了半天C#解析,有人说用mshtml,我去找mshtml,结果都是用webbrowser来配合的.而别的HtmlAgilityPack,htmlhelper什么的,使用方法有点怪异...getElementByid这类的东西都没有了...我有两个问题:
mshtml能否实现上面的VB6的功能?装入html字符串,然后解析...
如果不能,那VB使用的这个CreateObject("HTMLFILE")中的HTMLFILE对应在C#是什么?
2016-1-8补充说明,我自己已经解决了,HtmlAgilityPack和mshtml我都用了,并且写了总结,供后面的人参考,避免浪费时间:
HtmlAgilityPack挺好用的,你看一会就明白了
AngleSharp也挺好用的,https://github.com/AngleSharp/AngleSharp
CsQuery也不错,https://github.com/jamietre/CsQuery