次のhtml要素からテキストを抽出しています
<span class="adr" style="float: none !important;">
<span class="street-address" style="float: none !important;">18, Jawaharlal Nehru
Road,
</span>
<span style="float: none !important;" class="estb_addr-HeadingTxt">
<a style="float: none !important;" href="http://kolkata.burrp.com/area/park-street" class="locality"> Park Street</a></span>
, Kolkata<span class="region" style="display: none;">Kolkata
</span>
</span>
そのために、私は次のコードを書きました。
for (Element element : doc.getAllElements())
{
for(Element childelem: element.children())
{
if (childelem.hasText() && !childelem.ownText().isEmpty())
{
String currText=childelem.ownText();
System.out.print(currText+" ");
}
}
System.out.println("");
}
理想的には、出力は18、Jawaharlal Nehru Road、Park Street、Kolkataである必要があります。しかし、それは18、ジャワハーラールネルーロード、コルカタ、パークストリートを与えています。出力は基本的に、外側の<span>をルートとするDOMツリーの順序どおりのトラバースであることが理解できます。しかし、HTMLページの要素のDOMツリーに任意のレベルのネストがあるJsoupでそれを実現する方法が正確にはわかりません。
どんな助けでもいただければ幸いです。ありがとうございました。