DOM gyermek elem (child element) létrehozása

Ebben a fejezetben a gyökér és gyermek elem létrehozásáról lesz szó a DOM fában (DOM tree). Először egy üres DOM dokumentumot készítünk, és hozzáadjuk a gyökér elemet. Utána megjegyzés majd gyermek elemet fogunk a gyökér elemhez adni. A lecke során a következő XML kódot fogjuk elkészíteni és megjeleníteni a konzolon.

<?xml version="1.0" encoding="UTF-8" ?>
<root>
<!-- This is comment-->
<Child attribute1="The value of Attribute 1" />
</root>

A gyökér elem létrehozása:

Az előző leckében megtanultuk hogyan készítsük el a DocumentBuilder objektumot és hozzuk létre az üres DOM dokumentumot. A következő kódrészlet elkészíti az üres dokumentumot.

//Create blank DOM Document
Document doc = docBuilder.newDocument();

A createElement funkciót használhatjuk a gyökér elem létrehozására, majd az appendChild metódussal fűzhetjük hozzá a létrehozott elemet a DOM dokumentumhoz.

//create the root element
Element root = doc.createElement("root");

//all it to the xml tree
doc.appendChild(root);

Megjegyzés elem hozzáadása a DOM fához:

A doc.createComment funkcióval készíthetünk megjegyzés objektumot.

//create a comment
Comment comment = doc.createComment("This is comment");

//add in the root element
root.appendChild(comment);

Gyerkmek elem hozzáadása a DOM fához:

A doc.createElement funkcióval készíthetünk gyermek elemet.

//create child element
Element childElement = doc.createElement("Child");

//Add the atribute to the child
childElement.setAttribute("attribute1","The value of Attribute 1");
root.appendChild(childElement);

A DOM fa megjelenítése a konzolon a következő kódrészlettel lehetséges:

TransformerFactory tranFactory = TransformerFactory.newInstance();
Transformer aTransformer = tranFactory.newTransformer();

Source src = new DOMSource(doc);
Result dest = new StreamResult(System.out);
aTransformer.transform(src, dest);

Minta, CreateDomXml.java:

import org.w3c.dom.*;

import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

class CreateDomXml {

    public static void main(String[] args) {

        try{

            //Create instance of DocumentBuilderFactory
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

            //Get the DocumentBuilder
            DocumentBuilder docBuilder = factory.newDocumentBuilder();

            //Create blank DOM Document
            Document doc = docBuilder.newDocument();

            //create the root element
            Element root = doc.createElement("root");

            //add it to the xml tree
            doc.appendChild(root);

            //create a comment
            Comment comment = doc.createComment("This is comment");

            //add in the root element
            root.appendChild(comment);

            //create child element
            Element childElement = doc.createElement("Child");

            //Add the atribute to the child
            childElement.setAttribute("attribute1","The value of Attribute 1");
            root.appendChild(childElement);

            TransformerFactory tranFactory = TransformerFactory.newInstance();
            Transformer aTransformer = tranFactory.newTransformer();

            Source src = new DOMSource(doc);
            Result dest = new StreamResult(System.out);
            aTransformer.transform(src, dest);
        }

        catch(Exception e) {

            System.out.println(e.getMessage());
        }
    }
}

A következő fejezetben az XML gyökér objektum megszerzéséről lesz szó.