5

准 html 文本,看起来像: Simple<br> text <b>simple</b> text simple <BR><BR>text simple text,我想解析它并创建dom 文档。但是问题在于未封闭的标签,当我尝试这个时:

DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
InputSource source = new InputSource(new StringReader(
Document doc = builder.parse(source);

发生错误:org.xml.sax.SAXParseException; The element type "br" must be terminated by the matching end-tag

我不想全部替换<br><br></br>,任何解决方案或建议?

4

2 回答 2

3

您必须重写所有格式良好的 HTML。基本上,您浏览文本并创建所有打开标签的列表。当您找到相应的结束标签时,您可以将其从列表中删除。当您完成后,您仍然在此列表中有条目,您知道它的格式不正确。

问题是在哪里插入未关闭的标签。您可以尝试在下一个单词之后插入相应的结束标签。在您的情况下,您可以简单地用 br / 标签替换 br 标签,如果那是唯一出现的话。这种方式字符串表示文档的内容。

string = string.replace("<br>", "<br />");
于 2013-08-01T08:36:29.803 回答
3

使用jsoup,享受易用性。

于 2013-08-01T08:59:25.613 回答