JSOUP解析HTML获取类内的类

0 parsing android html-parsing jsoup

我正在开发 Android 应用程序,使用 JSOUP 来解析 HTML。

我有 HTML 语法

    <div class='wrapper'>   
<div style='margin:7px;'>
    <div class='box' style='height:595px'>
        <div class='boxtitlebox'>
            <div class='boxtitle'><h4>13 RECENT CHORDS</h4></div><div class='clear'></div>
        </div>

        <div class='listitem'><a href='http://www.chordfrenzy.com/chord/9742/ungu-apa-sih-maumu-kord-lirik-lagu'>           
            <div class='subtitle'>Chord Ungu</div>
            <div class='title'>Apa Sih Maumu</div>
        </a></div>
        <div class='listitem'><a href='http://www.chordfrenzy.com/chord/6826/slank-boneka-tersayang-kord-lirik-lagu'>           
            <div class='subtitle'>Chord Slank</div>
            <div class='title'>Boneka Tersayang</div>
        </a></div>
        <div class='listitem'><a href='http://www.chordfrenzy.com/chord/6751/ari-lasso-rayuan-gombal-kord-lirik-lagu'>          
            <div class='subtitle'>Chord Ari Lasso</div>
            <div class='title'>Rayuan Gombal</div>
        </a></div>
        </div>
</div>
 </div>
Run Code Online (Sandbox Code Playgroud)

现在,我很困惑如何获得上面的每个ahref副标题标题

我需要它来填充我的数组,如下所示

String[] link=["http://www.chordfrenzy.com/chord/9742/ungu-apa-sih-maumu-kord-lirik-lagu","http://www.chordfrenzy.com/chord/6826/slank-boneka-tersayang-kord-lirik-lagu","http://www.chordfrenzy.com/chord/6751/ari-lasso-rayuan-gombal-kord-lirik-lagu"];
String[] subtitile=["Chord Ungu","Chord Slank","Chord Ari Lasso"];
String[] title=["Apa Sih Maumu","Boneka Tersayang","Rayuan Gombal"];
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?

oll*_*llo 5

一般来说,您应该更喜欢Selector API而不是 DOM ( getElementsByX)

这是一个例子:

Document doc = Jsoup.parse(html);


// Links
List<String> links = new ArrayList<>();

for( Element element : doc.select("a[href]") )
{
    links.add(element.attr("href"));
}


// Subtitles
List<String> subtitles = new ArrayList<>();

for( Element element : doc.select("div[class=subtitle]") )
{
    subtitles.add(element.text());
}


// Titles
List<String> titles = new ArrayList<>();

for( Element element : doc.select("div[class=title]") )
{
    titles.add(element.text());
}
Run Code Online (Sandbox Code Playgroud)

元素是按标签和属性选择的,如果标签不同或不相关,您可以删除它们(例如,[class=title]而不是div[class=title])。查看 Selector API(上面的链接)以获取更多提示。