jsoup从表头获取一个元素

时间:2016-03-12 23:49:13

标签: jsoup

<th "data-next="/?operator=comcast&from=hbo#guide" >
<a href="/hbo/" title="HBO">
  <div>
    <img src="//comcast.com/channel_logo/hbo.png?0">
  </div>
  <span>HBO</span>
</a>
</th>
<th "data-next="/?operator=att&from=fox#guide" >
<a href="/fox/" title="fox">
  <div>
    <img src="//att.com/channel_logo/fox.png?0">
  </div>
  <span>FOX</span>
</a>
</th>

我想获得data-next中的所有链接,所以我希望: /?operator=comcast&from=hbo#guide/?operator=att&from=fox#guide。但我的解释有问题,因为我不知道data-next是什么。它不是属性或元素,因此我不确定我应该使用的jsoup中的内容。我将不胜感激任何帮助

编辑:

整个表头看起来像这样:

<thead class="channelLogos"> 
 <tr>  
  <th "data-next="/?operator=comcast&from=hbo#guide"> <a href="/hbo/" title="HBO"> 
    <div> 
     <img src="//comcast.com/channel_logo/hbo.png?0"> 
    </div> <span>HBO</span> </a> </th>(...) 

当我这样做的时候:

Elements elts = doc.select("thead.channelLogos th")
for(Element elt : elts) {
   System.out.println(elt.absUrl("data-next"));
}//elts stores th elements but doesn't print anything

但是像这样:

Elements elts = doc.select("thead.logaStacji th[data-next]");

elts为空(size = 0

1 个答案:

答案 0 :(得分:1)

试试这个:

String html = loadHTML(...);

Document doc = Jsoup.parse(html);

Elements elts = doc.select("th[data-next]");

for(Element elt : elts) {
    // Get absolute url stored in data-next attribute
    System.out.println(elt.absUrl("data-next"));
}