Skip to content
Advertisement

Jsoup – Remove all children from an element

I have an element as below. When I apply .empty() method on the element it is removing the text “Name”. Is there any other way to remove all child elements blindly from an element except its text ? I know the below example don’t have any child elements.

<label class="field__label" for="1">Name</label>

Advertisement

Answer

Try this.

public static void main(String[] args) {
    Element doc = Jsoup.parse(
        "<div id='id'>"
        + "a"
        + "<div>b</div>"
        + "c"
        + "<div>d</div>"
        + "e"
        + "</div>");
    Element e = doc.select("div#id").first();

    e.select("*").remove();  // remove all children

    System.out.println(e);
}

output:

<div id="id">
 ace
</div>

User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement