htmlagilitypack是一个开源的解析html元素的类库,最大的特点是可以通过xpath来解析hmtl,如果您以前用c#操作过xml,那么使用起htmlagilitypack也会得心应手。目前最新版本为1.4.6,下载地址如下:
http://htmlagilitypack.codeplex.com/
下面以一个简单的例子来介绍下htmlagilitypack的使用,对于asp.net程序开发的网站要做模拟登录的时候,除了要知道用户名文本框和密码文本框的name属性值外,还需要知道页面的viewstate、eventvalidation这两个隐藏控件的值,以及提交按钮的name属性,下面看看怎样使用htmlagilitypack来获得这个额外的值。
1、在项目中添加对htmlagilitypack.dll的引用
2、在aspx页面中放几个文本框控件和一个按钮控件
3、按钮的后台事件如下
protected void btnhtml_click(object sender, eventargs e)
{ if (tburl.text.length > 0)
{
htmlweb htmlweb = new htmlweb();
htmldocument htmldoc = htmlweb.load(this.tburl.text);
htmlnode htmlnode = htmldoc.documentnode.selectsinglenode(//input[@id='viewstate']);
string viewstatevalue = htmlnode.attributes[value].value;
htmlnode = htmldoc.documentnode.selectsinglenode(//input[@id='eventvalidation']);
string eventvalidation = htmlnode.attributes[value].value;
htmlnode = htmldoc.documentnode.selectsinglenode(//input[@type='submit']);
string submitname = htmlnode.attributes[name].value;
tbviewstate.text = viewstatevalue;
tbeventvalidation.text = eventvalidation;
tbsubmitname.text = submitname;
}
}
4、以博客园的登录界面为例,获取后的界面如下
以上就是html解析组件htmlagilitypack使用方法介绍的详细内容。