0

次の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">&nbsp;Park Street</a></span>
       ,&nbsp;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でそれを実現する方法が正確にはわかりません。

どんな助けでもいただければ幸いです。ありがとうございました。

4

1 に答える 1

0

DOM ナビゲーションまたは CSS セレクター構文のいずれかを使用してタスクを実行し、すべてをループしないでくださいElements

Element adr = doc.select("span.adr").first().
System.out.println(adr.text());
于 2013-02-27T03:12:40.673 に答える