How do I add and remove elements from xml document?
Category: org.jdom, viewed: 4385 time(s).
The List returned by the getChildren() method call is a java.util.List. Any modification to the List object are 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.example.jdom;
import org.jdom.input.SAXBuilder;
import org.jdom.Document;
import org.jdom.JDOMException;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;
import org.jdom.output.Format;
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 modified the xml document. Using java.util.List
// makes the modification of XML document simple and easy.
//
List children = document.getRootElement().getChildren();
children.add(new Element("user")
.setAttribute("name", "Carol")
.setAttribute("age", "25")
.setAttribute("dob", "06-03-1984"));
//
// Add element to the begining 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 e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Download Hundreds of Complimentary Industry Resources
Get hundreds of popular Industry magazines, white papers, webinars, podcasts, and more;
all available at no cost to you. With more than 600 complimentary offers, you'll find
plenty of titles to suit your professional interests and needs.
Click Here and Sign up today!