У меня есть большой html в переменной String, и я хочу получить содержимое div.Я не могу полагаться на регулярное выражение, потому что оно может иметь вложенные элементы div.Итак, давайте предположим, что у меня есть следующая строка:
String test = "<div><div id=\"mainContent\">foo bar<div>good best better</div> <div>test test</div></div><div>foo bar</div></div>";
Тогда как я могу получить это с помощью простой Java-программы -
<div id="mainContent">foo bar<div>good best better</div> <div>test test</div></div>
Ну, мой подход примерно такой (может быть ужасным, все еще пытаюсь исправить) -
public static void main(String[] args) {
int count = 1;
int fl = 0;
String s = "<div><div id=\"mainContent\">foo bar<div>good best better</div> <div>test test</div></div><div>foo bar</div></div>";
String tmp = s;
int len = s.length();
for (int i=0; i<len; i++){
int st = s.indexOf("div>");
if(st > -1) {
char c = s.charAt(st-1);
if(c == '/') {
count--;
} else {
count++;
}
s = s.substring(st+4);
System.out.println(s);
i = i + st;
System.out.println(c + " -- " + st + " -- " + count + " -- " + i);
if (count == 0) {
fl = i;
break;
}
}
}
System.out.println("final ind - " + fl);
s = tmp.substring(0, fl + 4);
System.out.println("final String - " + s);
}