Posto il codice un po' più completo:
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.
}
}
}
Le parti in arancione sono dei debug manuali, che restituiscono:
codice:
<h1>jhvjv</h1>
11
jhvjv</h1>
51
-11
Proprio non capisco... perké nella prima riga... lui va a prendersi il secondo < e non il primo?!