Я пытаюсь проанализировать файл XHTML с помощью Jsoup, и он удаляет закрывающую косую черту на некоторых моих тегах. то есть:
<link rel="stylesheet" type="text/css" href="/css/assessment.css" />
становится
<link rel="stylesheet" type="text/css" href="/css/assessment.css">
Я попробовал некоторые другие ответы здесь:
Jsoup: Как преобразовать строку, содержащую HTML, в документ XHTML? https://github.com/jhy/jsoup/issues/511 jsoup: другой результат после обновления с 1.7.3 до 1.8.1, как этого избежать?
С моей последней попыткой было:
File input = new File("src\\main\\resources\\templates\\assessmenttemplate.html"); Document doc = Jsoup.parse(input, "UTF-8", ""); doc.outputSettings().escapeMode(Entities.EscapeMode.xhtml); doc.outputSettings().charset("UTF-8")
Я также пытался изменить тип документа:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Но проблема сохраняется. Как анализировать HTML, не удаляя завершающие косые черты?
Это сработало:
File input = new File("src\\main\\resources\\templates\\assessmenttemplate.html"); Document doc = Jsoup.parse(input, "UTF-8", ""); doc.outputSettings().syntax(Document.OutputSettings.Syntax.xml); doc.outputSettings().escapeMode(Entities.EscapeMode.xhtml); doc.outputSettings().charset("UTF-8");