2011-07-30 42 views
1

當我想使用Jsoup打印下載的文件時,如果有一個換行符,DocType中的某些信息就會丟失。這是打算還是這是一個錯誤?如果包含一個換行符,Jsoup會吃DocType的額外信息

例如:

DocType文檔類型看起來像這樣:

<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

如果我打印使用doc.html()或doc.toString()我得到它:

<!DOCTYPE html> 

如果沒有linkebreak,我會得到包含所有信息的完整DocType。

我能做些什麼來解決這個問題?

乾杯 Bene的

回答

0

我的問題可以通過繞過解析器來解決:

org.jsoup.Connection con =Jsoup.connect(url).userAgent(USER_AGENT).timeout(MAX_TIMEOUT).followRedirects(true); 
Response resp = con.execute().method(Method.GET); 
completeFile = resp.body(); 
doc = resp.parse(); 

現在,你有在變量「completeFile」未濾波/未解析的代碼和很好的文檔解析一個「DOC」。

我希望這可以幫助別人。

Cheers Bene

2

是的,這是一個錯誤。感謝您指出。記號器沒有正確忽略doctype名稱和公共標識符之間的空格。

我已經fixed the bug,它將在jsoup 1.6.2可用。