Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    99

    [java]aiuto parser...ho un problema!

    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();
             }
      
     }
    f4s4n0

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Modifico il titolo per renderlo più chiaro e conforme al regolamento.
    Cerca di non scrivere più titoli così generici...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    99
    nessuno sa aiutarmi?
    f4s4n0

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.