如果包含换行符,Jsoup会获取DocType的额外信息

时间:2011-07-30 18:11:23

标签: jsoup

当我想使用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>

如果其中没有连锁,我会得到包含所有信息的完整DocType。

我该怎么做才能解决这个问题?

干杯 好处

2 个答案:

答案 0 :(得分:2)

是的,这是一个错误。谢谢你指出来。令牌器未正确忽略doctype名称和公共标识符之间的空格。

fixed the bug,它将在jsoup 1.6.2。

中提供

答案 1 :(得分: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