2013-11-19 3 views
1

HTML-код (не с моего сайта, так что я не могу изменить его) выглядит следующим образом:Jsoup - Выберите значение из HREF атрибута

<div id="resulttable"> 
<div class="dirlist"> 
    <div class="stationcol" style="width:428px;"> 
    <a href="http://whatever.com?id=xxx" title="Whatever" class="playbutton playimage" name="whatever" id="105867"></a> 
    <div class="videoBody"> 
    <div class="gridModule"> 
    <div class="surrogate"> 
     <div id="thumbnail105867" class="thumbnail"> 
     <a class="playbutton clickabletitle" name="whatever" id="105867" title="Whatever" href="http://whatever.com?id=xxx"> Bla </a> 
</div></div></div></div></div></div></div> 

Вот мой код:

Document doc = Jsoup.parse(result); 
Elements hrefs = doc.select("div.stationcol a[href]"); 
StringBuilder links = new StringBuilder(); 

for (Element href : hrefs) { 
    links.append(href.text()); 
} 

String httplinks = links.toString(); 
System.out.println("TEST: " + httplinks); 

Результат выглядит так:

I/System.out(10451): Link1http://www.whatever.c...Link2http://www.test.c... 

что мне действительно нужно, это ArrayList, который содержит Urls и, возможно, один отдельный ArrayList, который содержит заголовки.

Может ли кто-нибудь мне помочь?

ответ

4

Вы имеете в виду что-то вроде этого?

ArrayList<String> titles = new ArrayList<String>(); 
ArrayList<String> urls = new ArrayList<String>(); 

Document doc = Jsoup.parse(result); 
Elements links = doc.select("div.stationcol > a[href]"); 

for (Element e : links) { 
    titles.add(e.attr("title")); 
    urls.add(e.attr("href")); 
} 

System.out.println(titles); 
System.out.println(urls); 

Этот выход содержимое обоих ArrayLists в примере кода, например:

[Whatever] 
[http://whatever.com?id=xxx] 
+0

Большое спасибо, это работает отлично, и это excactly то, что я имел в виду! ты лучший :-) – Rippler2k5

Смежные вопросы