使用NodeVisitor访问HTML页面的TAG

     上次所说的使用Filter同时访问formtag和linktag是不行的,实际上有这样一种东西,可以访问任意tag--------Nodevisitor。下边这个程序是DOC上边的,我只是改了下,使得可以符合我的需要,访问linktag和formtag:
 import org.htmlparser.Parser;
 import org.htmlparser.Tag;
 import org.htmlparser.tags.LinkTag;
 import org.htmlparser.tags.FormTag;
 import org.htmlparser.Text;
 import org.htmlparser.util.ParserException;
 import org.htmlparser.visitors.NodeVisitor;
 
 public class MyVisitor extends NodeVisitor
 {
     public MyVisitor ()
     {
     }

     public void visitTag (Tag tag)
     {
         if (tag instanceof LinkTag)
         {
             System.out.println("a ->" + ((LinkTag)tag).extractLink());
         }
         else if (tag instanceof FormTag)
         {
             System.out.println("form ->" + ((FormTag)tag).extractFormLocn());
         }
     }

     public static void main (String[] args) throws ParserException
     {
         Parser parser = new Parser (args[0]);
         parser.setEncoding("GB2312");
         NodeVisitor visitor = new MyVisitor ();
         parser.visitAllNodesWith (visitor);
     }
 }

解析器会自动地调用visitTag方法,对每个tag进行判断,对需要的进行必要的操作。
好东西吧,再研究更有意义点的操作,由他发散就行了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值