有没有办法使用JSoup操作部分HTML页面

时间:2013-05-10 01:14:24

标签: java html jsoup

我正在开发一些实用工具,它必须遍历一组HTML文件并对其进行操作。

JSoup在解析和操作完整的文件方面做得很好(即他们有<html> ... </html>个标签)。

但是对于部分页面,即包含标记的页面,

<div id="leftnav">...</div>

它正确解析但是当调用doc.toString()doc.outerHtml()时,它会返回完整的HTML(它将部分HTML内容包装在<html> <body> ... </body> </html>标记中)

对我来说这是一个问题,如果JSoup中有这样的API不以这种方式清理/清理HTML内容,请告诉我吗?

感谢。

1 个答案:

答案 0 :(得分:3)

您可以使用Xml Parser

  

创建一个新的XML解析器。这个解析器假定不知道   传入标签并不将其视为HTML,而是创建一个简单的标签   树直接来自输入。

换句话说:它不会创建典型的html结构(html,body,head等)并按原样输入。

以下是如何使用它:

// Using connect()
Document doc = Jsoup.connect("<url>").parser(Parser.xmlParser()).get();

// Using parse()
Document doc = Jsoup.parse("<html>", "<base url>", Parser.xmlParser());