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);
→ Ссылка