什么是解析遍历html,解析html程序(C#版)——遍历各个节点(mshtml)

/*

在项目里引用了mshtml.dll,并且引用命名空间:using mshtml;

首先,参数html就是html文本内容(里面有markup标记和显示文本等等)

其次,getHtmlDisplayContent这个函数就是获取html里浏览器上可看到的内容,即从源码中取出显示文本。

最后,traverseNodes是个人写的一个遍历各个节点的一个小小递归程序,没考虑效率什么的,只是想知道怎么使用IHtmlDocument2和IHtmlDocument3接口

Note:当html文档不规范时,比如在

*/

private static string getHtmlDisplayContent(string html)

{

string cont = "";

mshtml.HTMLDocumentClass oc = new mshtml.HTMLDocumentClass();

mshtml.IHTMLDocument2 doc2 = oc;

doc2.write(html);

mshtml.IHTMLDocument3 HTMLDocument = (mshtml.IHTMLDocument3)doc2;

traverseNodes(HTMLDocument.documentElement, ref cont);

//mshtml.IHTMLTitleElement title = (mshtml.IHTMLTitleElement)doc2.title;

/* cont += doc2.title.ToString();

mshtml.IHTMLBodyElement body = (mshtml.IHTMLBodyElement)doc2.body;

if (body.text!=null)

cont += body.text.ToString();

* */

doc2.close();

return cont;

}

private static void traverseNodes(mshtml.IHTMLElement parentNode,ref string cont)

{

if (parentNode.innerText!=null)

cont += parentNode.innerText;

mshtml.IHTMLElementCollection nodes = (IHTMLElementCollection)parentNode.children;

IEnumerator ienum= nodes.GetEnumerator();

while (ienum.MoveNext())

{

IHTMLElement node = (IHTMLElement)ienum.Current;

traverseNodes(node,ref cont);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值