使用 DOM-Java 进行 HTML 解析

Val*_*ade 3 html java dom

我想使用 Java 解析 HTML 文件,并且我已经使用了DocumentBuilder类。我的 HTML 包含一个<img src="xyz">标签,没有结束</img>标签,这是浏览器允许的。但是当我将其DocumentBuilder用于解析时,它给了我这个错误

元素类型“img”必须由匹配的结束标记终止 </img>。

爪哇:

DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document document = docBuilder.parse(is);
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能消除这个错误?

Wan*_*uta 5

DocumentBuilder是Java XML 解析框架的一部分。XML 解析器无法正确解析 HTML:语言看起来很相似,但 XML 具有更严格的要求。(您已经看到了差异之一:在 XML 中,所有标签都应该有一个匹配的结束标签,而在 HTML 中,有些标签有,有些没有。)

尝试使用 HTML 解析器。我听说过有关jsoup( http://jsoup.org/ ) 的好消息。