2012-06-10 85 views
1

如何解析沒有Id標記的表。 我試圖解析一個表與源代碼行2290至3153年http://pastebin.com/DjGHED5t如何使用jsoup解析沒有Id標記的表。

這是不明顯的對我來說如何做到這一點。我現在已經是

import java.util.*; 
import java.io.*; 
import java.awt.*; 
import javax.swing.*; 
import org.jsoup.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import java.awt.event.KeyEvent; 
import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 

public class test{ 
public static void main (String []args){ 
    String Ticker = "KO"; 
    URL url = new URL("http://toolbox.investools.com/graphs/fundamentalAnalysis.iedu?report=BS&symbol="+(Ticker)); 
    Document doc = Jsoup.parse(url, 3000); 
    Elements table = doc.select(table); 
    Iterator<Element> ite = table.select(table[width="100%"] [bgcolor="#CCCCCC"] [cellpadding="0"] [cellspacing="2"]); 

     String[][] balanceSheetInfo = new String [46][11]; 

     while (ite.hasNext()){ 
      for (int row = 0, row_size = balanceSheetInfo[row].length; row < row_size; row++){ 
        for (int col = 0, col_size = balanceSheetInfo.length; col < col_size; col++){ 
         if(ite.hasNext()){ 
         balanceSheetInfo[col][row] = input.next(); 
         System.out.printf("%s",balanceSheetInfo[col][row]);       } 
        } 
       }     
      } 
     } 
    } 

但我正在逐漸找不到符號錯誤。我對Jsoup並不擅長,因爲這是我使用過的第一個項目。如果有人能指導我,我將不勝感激。

回答

1

閱讀代碼:

Elements table = doc.select(table); 

您正在使用的表變量(在doc.select(table))之前,它甚至宣佈。 Element.select() method接受一個字符串作爲參數。你需要

Elements table = doc.select("table"); 

用雙引號,它將選擇所有的表格元素。

下一行有同樣的問題:

table.select(table[width="100%"] [bgcolor="#CCCCCC"] [cellpadding="0"] [cellspacing="2"]); 

應該

table.select("table[width=\"100%\"] [bgcolor=\"#CCCCCC\"] [cellpadding=\"0\"] [cellspacing=\"2\"]"); 
+0

嗯......好吧。這應該有所幫助。從9 – user1093111

+0

最多減少4個錯誤現在... – user1093111

+0

if(ite.hasNext()){balance} {平衡] [行] = ite.text(); System.out.printf(「%s」,balanceSheetInfo [COL] [行]);它說ite.text()方法不存在。也許編譯錯了? – user1093111