【问题标题】:Selecting empty/repeated divs on jsoup在 jsoup 中选择空/重复 div
【发布时间】:2015-09-25 11:19:49
【问题描述】:

我需要从 HTML 中提取一些值,但我遇到了一些问题。我现在将尝试解释什么是错的。这是源 HTML 的相关部分:

<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 被选中。但是,当我执行以下代码时,它只检测到所选 div 中的 1 个,并且它的顺序丢失了。

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>

那么如何从给定的 HTML 中提取 1、4、5、7、9 数字?

【问题讨论】:

    标签: java android html css jsoup


    【解决方案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
    }
    

    【讨论】:

      【解决方案2】:

      提取所有元素

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

      希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-30
        • 1970-01-01
        • 2015-06-12
        • 1970-01-01
        • 2011-09-03
        • 2011-12-28
        • 2019-08-10
        相关资源
        最近更新 更多