Я пытаюсь разобрать сайт, который используетJsoup игнорировать вложенные теги при использовании выберите
<b>Header</b>Data<strong>Header</strong>Data
поэтому у меня есть селектор, который
.select("b, strong")
, а затем попытаться извлечь текст между ними. - Все отлично.
Проблема: Иногда сайт имеет, например.
<strong><strong>HeaderX</strong><br /></strong>Data
теперь это портит мою петлю, так как я буду получать текст headerX в два раз, как я могу игнорировать вложенную сильное?
ОБНОВЛЕНИЕ # 1 Решено, но, вероятно, имеет лучший способ.
Elements selected = info.select("b, strong");
Element next = selected.get(0);
Element now = null;
for (int i = 0; next != null ;i++) {
now = next;
next = null;
Elements children = now.getAllElements();
for (;selected.size() > i; i++) {
next = selected.get(i);
if (!children.contains(next)) {
break;
}
}
//Do whatever with now & next
}
Это будет только заголовок дважды, как раз испытал его на '
я испытал его на расширение Firebug 1.2, и она работала для меня. Хорошо попробуйте этот путь вместо использования цикла. Ответ будет опубликован выше. – ImGeorge