Posto il codice un po' più completo:
Le parti in arancione sono dei debug manuali, che restituiscono:codice:Vector<String> linee = new Vector<String>(); linee.add("<!DOCTYPE bla bla><?php echo ciao; ?> <h1>jhvjv</h1> "); linee.add("<div id=\"maincontainer\" style=\"ciao\">questo è"); linee.add(" <%=ciao%> il main <img src=\"ciao.jpg\" /> container</div>"); linee.add("<a href=\"ciao.htm\">questo e' un link</a>"); String linea2, nome_tag; for(String linea:linee){ while(!linea.equals("")){ char c = linea.charAt(linea.indexOf("<")+1); if (c == '?') linea = linea.substring(linea.indexOf("?>")+2);// se ci sono tag PHP li elimina - +2 perké indexOf calcola l'indice del primo carattere della stringa nell'arg else if (c == '%') linea = linea.substring(linea.indexOf("%>")+2);// se ci sono tag ASP li elimina else if (c == '!') linea = linea.substring(linea.indexOf(">")+1);// se ci sono tag di commento li elimina else { System.out.println(linea+"\n"+linea.indexOf("<")+1+"\n"); if(linea.indexOf("<")+1 == -1) System.out.println("<"); else if(linea.indexOf(">") == -1) System.out.println(">"); linea2 = linea.substring(linea.indexOf("<")+1,linea.indexOf(">")); try{ Tag t = new Tag(linea2); //prima di inserirlo nello stack controllare se è di apertura o chiusura così da vedere se metterlo o toglierlo if(t.getOpen() != 2){ tags.add(t); // simula il tagStack } }catch(MalformedTagException e){ System.out.println(e); } linea = linea.substring(linea.indexOf(">")+1); // elimino il testo già esaminato perché indexOf restituisce solo il primo carattere che trova, non tutti. } } }
Proprio non capisco... perké nella prima riga... lui va a prendersi il secondo < e non il primo?!codice:<h1>jhvjv</h1> 11 jhvjv</h1> 51 -11

Rispondi quotando