The List
returned by the getChildren()
method call is a java.util.List
. Any modification to the List
object immediately reflected in the backing document. This make the manipulation of the XML document easy.
You can also see how we can add a new Element
to the document by calling the addContent()
method.
package org.kodejava.jdom;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.List;
public class JDOMAddRemoveElement {
public static void main(String[] args) {
String xml = """
<root>
<user name="Alice" age="21" dob="20-01-1988"/>
<user name="Bob" age="23" dob="01-05-1986"/>
</root>""";
SAXBuilder builder = new SAXBuilder();
try {
Document document = builder.build(
new ByteArrayInputStream(xml.getBytes()));
// Adding a new element to the root of the document using the
// addContent method.
document.getRootElement().addContent(
new Element("people").setAttribute("id", "1"));
document.getRootElement().addContent(
new Element("people").setAttribute("id", "1"));
// Add a new element. By adding a new element to the List of
// children we can modify the xml document. Using
// java.util.List makes the modification of XML document
// simple and easy.
List<Element> children = document.getRootElement().getChildren();
children.add(new Element("user")
.setAttribute("name", "Carol")
.setAttribute("age", "25")
.setAttribute("dob", "06-03-1984"));
// Add element to the beginning of the xml document.
children.add(0, new Element("user")
.setAttribute("name", "Jimmy")
.setAttribute("age", "25")
.setAttribute("dob", "16-05-1984"));
// Remove the fourth element.
children.remove(3);
XMLOutputter outputter =
new XMLOutputter(Format.getPrettyFormat());
outputter.output(document, System.out);
} catch (JDOMException | IOException e) {
e.printStackTrace();
}
}
}
The result of this code is:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<user name="Jimmy" age="25" dob="16-05-1984" />
<user name="Alice" age="21" dob="20-01-1988" />
<user name="Bob" age="23" dob="01-05-1986" />
<people id="1" />
<user name="Carol" age="25" dob="06-03-1984" />
</root>
Maven Dependencies
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom2</artifactId>
<version>2.0.6.1</version>
</dependency>
Latest posts by Wayan (see all)
- How do I get number of each day for a certain month in Java? - September 8, 2024
- How do I get operating system process information using ProcessHandle? - July 22, 2024
- How do I sum a BigDecimal property of a list of objects using Java Stream API? - July 22, 2024