我正在从以下 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 树的顺序遍历。但我不知道如何通过 Jsoup 实现这一点,其中 HTML 页面中元素的 DOM 树具有任意级别的嵌套。
任何帮助,将不胜感激。谢谢你。