2015-09-25 3 views
1

Мне нужно извлечь некоторые значения из HTML, но у меня есть некоторые проблемы. Теперь я попытаюсь объяснить, что не так. Это связанная часть исходного кода HTML:Выбор пустых/повторяющихся divs на jsoup

<div class="selections"> 
    <div class="selected"> 
    <span>A</span> 
    </div> 
    <div class=""> 
    <span></span> 
    </div> 
    <div class=""> 
    <span></span> 
    </div> 
    <div class="selected"> 
    <span>A</span> 
    </div> 
    <div class="selected"> 
    <span>A</span> 
    </div> 
    <div class=""> 
    <span></span> 
    </div> 
    <div class="selected"> 
    <span>A</span> 
    </div> 
    <div class=""> 
    <span></span> 
    </div> 
    <div class="selected"> 
    <span>A</span> 
    </div> 
    </div> 

Что мне нужно сделать, так это определить количество выбранных div. В этом случае выбираются div # 1,4,5,7,9. Однако, когда я делаю следующий код, он обнаруживает только 1 из выбранного div и порядок его утерян.

Elements skills = doc.select("div.selections"); 
Elements selections = skills.select("div.selected"); 
Log.e("Logs",selections.toString()); 

Результат:

09-25 04:43:41.838 26936-26936/com.testapp E/Logs﹕ <div class="selected"> 
<span>A</span> 
</div> 

Так как я могу извлечь 1,4,5,7,9 числа из данного HTML?

ответ

0

Для экстракта всех элементов

for (Element selection : selections) { 
     Log.e("Logs",selection.toString()); 
     // Log.e("Logs",selection.text()); it return all text in element 
    } 

Надежда этой помощи.

1
I'm using jSoup 1.8.3.. 
I've added ids to your span tags to identify each one of them...just for testing the outcome. 

<div class='selections'> 
<div class='selected'> 
<span id='1'>A</span> 
</div> 
<div class=''> 
<span id='2'></span> 
</div> 
<div class=''> 
<span id='3'></span> 
</div> 
<div class='selected'> 
<span id='4'>A</span> 
</div> 
<div class='selected'> 
<span id='5'>A</span> 
</div> 
<div class=''> 
<span id='6'></span> 
</div> 
<div class='selected'> 
<span id='7'>A</span> 
</div> 
<div class=''> 
<span id='8'></span> 
</div> 
<div class='selected'> 
<span id='9'>A</span> 
</div> 
</div> 


Elements elements = doc.getElementsByClass("selections"); 
for (Element elem : elements) { 
Elements e = elem.select("div.selected"); 
Log.i("Log", e.html());//this is what you need 
} 
Смежные вопросы