2012-03-30 59 views
0
File input = new File("1727209867.htm"); 
Document doc = Jsoup.parse(input, "UTF-8","http://www.facebook.com/people/Alison-Vella/1727209867"); 

我想解析這個保存在本地系統中使用的html文件。但解析不解析所有的HTML。所以我不能達到我需要的信息。使用此代碼只解析6k字符的工作,但實際上html文件具有60k字符。如何在Jsoup中添加html中的所有元素?

+1

我不認爲有這樣一個輸入的下限。我與更大的輸入(在其他星座)工作。必須有一些不同的錯誤 – 2012-03-30 07:47:24

+0

你如何確定這個6k的限制? – vacuum 2012-03-30 08:00:59

+0

我檢查文檔(文檔文檔),它只有6K字符,並沒有完成 – 2012-03-30 08:02:28

回答

0

這是不可能的jsoup,但有解決方法

final File input = new File("example.html"); 
final int maxLength = 6000; // Limit of char's to read 

InputStream is = new FileInputStream(input); // Open file for reading 
StringBuilder sb = new StringBuilder(maxLength); // Init the "buffer" with the size required 
int count = 0; // Count of chars readen 
int c; // Char for reading 

while((c = is.read()) != -1 && count < maxLength) // Read a single char until limit is reached 
{ 
    sb.append((char) c); // Save the char into the buffer 
    count++; // increment the chars readen 
} 


Document doc = Jsoup.parse(sb.toString()); // Parse the Html from buffer 

解釋:

  1. 讀取文件炭的炭到緩衝區中,直到你達到極限
  2. 解析緩衝區中的文本並用jsoup處理它

問題:這不會關心關閉標籤等 - 它會停止精確讀取,如果你是在極限。

(可能)解決方案:

  • 忽略了這一點,正是阻止你在哪裏,解析這一點,「修復」或掉落掛HTML
  • ,如果你是在結束,直到你讀到下一個結束標籤或> char
  • 如果你在最後,直到你到達下一個塊標籤
  • 如果你是在最後,直到讀一個特定的標籤或評論
相關問題