2013-06-26 65 views
0

我試圖讓這個一起輸出:

提取物和族元素與jsoup

** * *電影片名: ** * **
地球末日戰
** * **廣播: ** * ***
布拉德·皮特
米瑞伊諾斯
詹姆斯徽章戴爾

** * *電影片名: ** * **
怪獸大學
** * **廣播: ** * ***
約翰尼·德普 屈臣氏
少年

<h2 itemprop="name">World War Z</h2> 
<div class=info>‎1hr 56min‎‎ - Rated PG13‎‎ - Action/Drama/Horror‎‎ - English‎<br> 
- Cast: 
<span itemprop="actors">Brad Pitt</span>, 
<span itemprop="actors">Mireille Enos</span>, 
<span itemprop="actors">James Badge Dale</span> 
</div> 

<h2 itemprop="name">Monsters University</h2> 
<div class=info>‎2hr 30min‎‎ - Rated PG13‎‎ - Comedy‎‎ - English‎<br> 
- Cast: 
<span itemprop="actors">Johnny Depp</span>, 
<span itemprop="actors">Watsons Junior</span> 
</div> 

我試着這樣做:

Elements movieTitle = doc.select("h2"); 
    for (Element src : movieTitle) { 
     for (int i = 0; i < movieTitle.size(); ++i) { 
      title += movieTitle.get(i).text() + "\n"; 
     } 
     break; 
    } 

    Elements casts = doc.select("span[itemprop=actors]"); 
    for (Element sr : casts) { 
     for (int i = 0; i < casts.size(); ++i) { 
      cast += casts.get(i).text() + "\n"; 
     } 
     break; 
    } 
System.out.println("*************Movie Titles:************* \n" + title); 
System.out.println("*************Casts:************* \n" + cast); 

但是ou tput的是:

** * *電影片名: ** * **
地球末日戰
怪獸大學

** * **廣播: ** * ***
布拉德·皮特
米瑞伊諾斯
詹姆斯徽章戴爾
約翰尼·德普
屈臣氏少年

我如何組根據電影類型轉換?

+0

也許更好的嘗試和順序解析,然後它會更容易匹配 –

回答

0

這會給你想要的格式的結果。

Elements items = doc.select("h2"); 
    for (Element movieElement : items) { 

     //Here you get movie name from movieElement 
     Elements castElemets = movieElement.nextElementSibling().select("span[itemprop=actors]"); 
     //loop through the castElemnts for corresponding Movie 
    }