内のすべてのテキストノードを印刷Jsoup。私はJsoupでこれを解析するため
<html><body><p>A<strong>B</strong>C<strong>D</strong>E</p></body></html>
は、彼らが表示される順序ですべてのテキスト要素を取得するために(これは、私は全体のWebページを解析することになる簡素化がある)、これは次のようになります。
A B C D E
私が試した2つのアプローチ:
Elements elements = doc.children().select("*");
for (Element el : elements)
System.out.println(el.ownText());
返します
A C E B D
これは、「強い」タグ間の要素が最後にあります。
私はまた、再帰バージョン試してみました:
myfunction(doc.children());
private void myfunction(Elements elements) {
for (Element el : elements){
List<Node> nodos = el.childNodes();
for (Node nodo : nodos) {
if (nodo instanceof TextNode && !((TextNode) nodo).isBlank()) {
System.out.println(((TextNode) nodo).text());
}
}
myfunction(el.children());
}
をしかし、結果は前と同じです。
これはどのように達成できますか?私は...私はシンプルな困難なものを作っています感じ