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();
        }
    }
}
Click here to lend your support to: Kode Java Org and make a donation at www.pledgie.com !

 

Uncensored Newsgroups
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!

Java Training

Sponsored Links

Our Friends

Statistics

Locations of visitors to this page
visitor stats