2017-05-07 4 views
1

中に製品レコードにHTMLクラスを組み合わせるために、私はこのようなメニューをこすりしようとしています: - 私はおそらく文字列の配列に各クラスを反復することにより、メニューオブジェクトを作成することができますJsoup:どのように反復

<h3 class="product">Four Cheese Spinach Dip</h3> 
<h3 class="specialcallout">Vegetarian</h3> 
<h4 class="productdescription">The original, made in-house creamy blend 
    of four cheeses, spinach, red pepper and onion. Served warm with fried 
    pita chips.</h4> 
<h4 class="calories"><span class="productprice">11.99</span> 
&nbsp;&nbsp;(620 CALS; serves 2)</h4> 

boolean show_product(String item){ 
    Elements elems = doc.getElementsByClass(item); 
    System.out.println("Num products " + elems.size() + "\n"); 
for (Element el : elems) { 
    xprint(" * product: <%s> (%s)", "_",trim(el.text(), 35)); 

製品、価格、説明などの別のルーチンが必要ですか?

答えて

0

あなたはこのようにそれを行うことができ、各属性ごとにこのルーチンをしない必要があります。

boolean show_product() { 
    Elements elems = doc.getElementsByClass("product"); 
    System.out.println("Num products " + elems.size() + "\n"); 
    for (Element el : elems) { 
     System.out.printf(" * %s: <%s> (%s)\n", el.className(), "_", el.text()); 
     for (int i = 0; i < 3; i++) { 
      Element nextSibling = el.nextElementSibling(); 
      System.out.printf(" * %s: <%s> (%s)\n", nextSibling.className(), "_", nextSibling.text()); 
      el = nextSibling; 
     } 
     Element spanEl = el.select("span").first(); 
     System.out.printf(" * %s: <%s> (%s)\n", spanEl.className(), "_", spanEl.text()); 
    } 
    return true; 
} 

またHTMLクラスは、製品のレコードと他の属性に結合されます。

+0

Aha、私は兄弟がタグ内でのみ適用可能だと思ったが、@ m3n2a2解決策が働いた。ここでは、コンソールの印刷は次のとおりです。 - Scraper1 ... のNumレコード40 *名前:<_>(アルドゥイーノLilyPad LEDマイクロ(グリーンクリニーク)) *モデル:<_>(0219-SPF-1100222) ※在庫:<_>( (アルドゥーノモーターシールドレボ3(4.5V-46V 2A/ch)(arduino.cc)) *モデル:<_>(1655-ARD- 7815011) *在庫:<_>(在庫があります) *値段:<_>($ 29.79 CAD) – RMM

関連する問題