Jsoup, заменить Element в Document
Нужно в определённом случае заменить Element в Document на другой. Подскажите, как это сделать?
Document doc = Jsoup.parse(html);
List<Element> elements = doc.getElementsByTag("img");
for (int i = 0; i < elements.size(); i++) {
Element element = elements.get(i);
for(Attribute attr : element.attributes()) {
if (attr.getKey().equals("src")) {
BodyPart bp = mp.getBodyPart("<" + attr.getValue().replace("cid:", "") + ">");
if (bp == null) {
continue;
}
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
bp.getDataHandler().writeTo(byteOut);
element.attr("src", "data:img; base64, " + Base64Utils.encodeToString(byteOut.toByteArray()));
byteOut.close();
}
}
}
В 8 строке, если bp == null, мне нужно удалить текущий элемент, и подставить вместо него элемент с текстом.
Не могу понять как это сделать. Удалить элемент получается, а вот как подставить вместо него новый, не понимаю. :(
Ответы (1 шт):
Автор решения: Владимир Дубровский
→ Ссылка
Проблему решил. Оказалось что Element имеет метод .replaceWith() в который можно подставить новый элемент.
Element newElem = new Element("p");
newElem.text("текст");
oldElem.replaceWith(newElem);