2014-12-07 17 views
0

我有以下的HTML代码:Java HTML解析没有得到我的数据?

<tr class="odd"> 
    <td class="first name"> 
     <a href="/quote/III:LN">3i Group PLC</a> 
    </td> 
    <td class="value">457.80</td> 
    <td class="change up">+10.90</td>  <td class="delta up">+2.44%</td>  <td class="value">1,414,023</td> 
    <td class="datetime">11:35:08</td> 

因我所需要得到的数据

457.80

(即value属性),我有这样的Java代码目前:

String FTSE =   "http://www.bloomberg.com/quote/UKX:IND/members"; 
    doc = Jsoup.connect(FTSE).get(); 
    Elements links = doc.select("a[href='/quote/III:LN']"); 
    for (Element link : links) { 

     // get the value from href attribute 
     System.out.println("\nlink : " + link.attr("value")); 
     System.out.println("text : " + link.text()); 

当我运行我的程序时,它终止输出什么都没有。我如何制作它,以便它输出值,在这种情况下,它是'457.80'?

+0

我认为你没有使用正确的选择。而不是“a [href ='/ quote/III:LN']”尝试“td.value”。 – Titus 2014-12-07 18:46:09

回答

1

links将包含<a href...>元素。您试图检索的是完全不同元素的文本,即<td>标签,其类别为value

我的猜测是你有多个<tr>元素,你只需要一个包含你选择的链接的元素。在这种情况下,你需要下面的代码:

String FTSE =   "http://www.bloomberg.com/quote/UKX:IND/members"; 
doc = Jsoup.connect(FTSE).get(); 
Elements trs = doc.select("tr:has(a[href='/quote/III:LN'])"); 
Elements values = trs.select("td.value"); 
link = values.get(0); 
System.out.println("text : " + link.text()); 

或类似的东西...

+0

对于nooby问题的道歉,但我有一个红色线下的链接错误'链接不能解析为变量',我该怎么做才能解决这个问题? – 2014-12-07 18:56:28

+0

Element link = values.get(0); – 2014-12-07 22:59:21

相关问题