Разбор XHTML с помощью Jsoup 1.11 - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь проанализировать файл 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, не удаляя завершающие косые черты?

1 Ответ

0 голосов
/ 05 июля 2018

Это сработало:

    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");
...