使用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进行判断,对需要的进行必要的操作。
好东西吧,再研究更有意义点的操作,由他发散就行了。

你可能感兴趣的:(html,String,filter,Class,import)