Utilizzando l'API Htmlparser (http://htmlparser.sourceforge.net/) ho fatto un parser che mi trova all interno di una pagina html tutti i tag di un certo tipo(in particolare il parser trova tag di tipo input,select,textarea e body).il parser funziona perfettamente a parte un problemino che non so come risolvere:
in pratica se uno dei tag cercati è all'interno di un tag div il parser non lo trova più.
quindi se

<input type="text" name="nome">

lo trova

se invece

<div class="pippo">
<input type="text" name="nome">
</div>
non lo trova +

questo è il codice qualcuno sa come aiutarmi?(semba lungo ma è semplice,fa sempre la stessa cosa)
codice:
public class Parse {
     
   //creo degli oggetti vector per salvare i dati dei tag
   public static Vector names = new Vector();
   public static Vector type = new Vector();
   public static Vector tagname = new Vector();
   public static int conta=0;
   public static int contatore=0;
   
   public static void cercatag (String path){
        try {
         
       //creo varie inner class Visitor che in base al tag trovato salvano tagname,name e type nei Vector 
            class InputVisitor extends NodeVisitor{
                
                public void visitTag(Tag tag){
                    
                        
                            if( tag.getTagName().equals("INPUT") && !tag.getAttribute("type").equalsIgnoreCase("BUTTON") && !tag.getAttribute("type").equalsIgnoreCase("SUBMIT") ){
                                tagname.add(tag.getTagName());
                                names.add( tag.getAttribute("name"));
                                type.add(tag.getAttribute("type"));
                         }
                             
                        
                    
                }
            }
            class BodyVisitor extends NodeVisitor{
                
                public void visitTag(Tag tag){
                    
                        
                            if( tag.getTagName ().equals("BODY") ){
                                tagname.add(tag.getTagName());
                                names.add( tag.getAttribute("name"));
                                type.add(tag.getAttribute("type"));
                         }
                             
                        
                    
                }
            }
              class SelectVisitor extends NodeVisitor{
                
                public void visitTag(Tag tag){
                    
                        
                            if( tag.getTagName ().equals("SELECT") ){
                                tagname.add(tag.getTagName());
                                names.add( tag.getAttribute("name"));
                                type.add(tag.getAttribute("type"));
                         }
                             
                        
                    
                }
            }
                class TextAreaVisitor extends NodeVisitor{
                
                public void visitTag(Tag tag){
                    
                        
                            if( tag.getTagName ().equals("TEXTAREA") ){
                                tagname.add(tag.getTagName());
                                names.add( tag.getAttribute("name"));
                                type.add(tag.getAttribute("type"));
                         }
                             
                        
                    
                }
            }
            //svuoto i vari Vector in modo da non ritrovarmi tag analizzati prima
            names.removeAllElements();
            tagname.removeAllElements();
            type.removeAllElements();
            //creo degli oggetti(parser,nodelist) che mi permettono di parserare i tag del file
            Parser p = new Parser(path); 
            NodeList list = new NodeList();
            list = p.parse(null);
            //con la visitallnodes(visitor) viene chiamata la visittag per tutti i tag trovati
            //nel file e vengono salvati solo i tag relativi al visitor 
            list.visitAllNodesWith(new BodyVisitor());
            list.visitAllNodesWith(new InputVisitor());
            list.visitAllNodesWith(new SelectVisitor());
            list.visitAllNodesWith(new TextAreaVisitor());
 }        
  catch(Exception e ){
          e.printStackTrace();
         }
  
 }