Jsoup удаление аттрибута

222
14 июля 2018, 03:50

Я хочу удалить из html-документа из тега embed аттрибут style:

<div>
    <embed class="style_5" id="__bookmark_3" onresize="document.getElementById('__bookmark_3').reload()" type="image/svg+xml" src="image/custom10.svg" alt="" style=" width: 212pt; height: 285.75pt;display: block;"></embed>
</div>

Для этого я использую библиотеку jsoup и следующий код:

File generatedReport = new File(outputReportPath);
if (generatedReport.exists()) {
    logger.info("generatedReport exists");
} else {
    logger.info("generatedReport doesn't exist");
}
Document doc = Jsoup.parse(generatedReport, "UTF-8");
Element embed = doc.select("embed").first();
String styleAttr = embed.attr("style");
logger.info("styleAttr: " + styleAttr);
embed.removeAttr("style");

И после запуска в логах такой вывод:

...|INFO | generatedReport exists

...|INFO | styleAttr: width: 212pt; height: 285.75pt;display: block;

Т.е. вроде как всё отрабатывает хорошо, кроме того, что тег из html-файла не удаляется. Что я делаю неверно? Или данный метод только удаляет аттрибут из объектной модели в памяти программы, и нужно перезаписать файл, чтобы фактически удалить аттрибут из тега hmtl-файла?

Answer 1

Да, как я и предполагала, данный метод только удаляет аттрибут из объектной модели в памяти программы, и нужно перезаписать файл, чтобы фактически удалить аттрибут из тега hmtl-файла. После добавления данного кода:

PrintWriter writer = new PrintWriter(generatedReport,"UTF-8");
writer.write(doc.html());
writer.flush();
writer.close();

html-файл был изменён, и тег embed стал выглядеть

<embed class="style_5" id="__bookmark_3" onresize="document.getElementById('__bookmark_3').reload()" type="image/svg+xml" src="image/custom10.svg" alt=""> 

что и требовалось.

READ ALSO
Wildfly 10, деплой war файла

Wildfly 10, деплой war файла

Пытаюсь задеплоить на Wildfly сервер проектПри деплоинге war файла происходит ошибка

302
Что означает оператор стрелка -&gt; в Kotlin? Эквивалент в Java

Что означает оператор стрелка -> в Kotlin? Эквивалент в Java

Всем привет! Подскажите плиз! Пытаюсь разобрать один паттерн, пример использования Android Architecture Components, написанный на Koltin'e и столкнулся с синтаксисом,...

236