Самый простой выход - использование библиотеки разбора HTML, например HTMLCleaner, TagSoup, HTML Parser и т. Д. Таким образом, вы сможете просто извлечь все нужные элементы из документа или выполнить итерации вручную с помощью «посетителя узла»'- или как ее называют библиотеки.
Беглый взгляд на документацию случайно выбранной библиотеки, приведенной выше, предполагает, что для HTMLCleaner должно работать что-то вроде следующего:*
Пример, использующий ту же библиотеку, но теперь с TagNodeVisitor и отфильтрованный по <td>
:
node.traverse(new TagNodeVisitor() {
public boolean visit(TagNode tagNode, HtmlNode htmlNode) {
if (htmlNode instanceof TagNode) {
TagNode tag = (TagNode) htmlNode;
String tagName = tag.getName();
if ("td".equals(tagName)) {
System.out.println("All text inside this <td> tag (including children): " + tag.getText());
}
}
// tells visitor to continue traversing the DOM tree
return true;
}
});