Comment créer un fichier XML en Java - (DOM Parser)

Comment créer un fichier XML en Java - (DOM Parser)

DOM fournit de nombreuses classes pratiques pour créer facilement un fichier XML. Tout d'abord, vous devez créer un document avec la classeDocumentBuilder, définir tout le contenu XML - nœud, attribut avec la classeElement. Enfin, utilisez la classeTransformer pour afficher l'intégralité du contenu XML vers la sortie de flux, généralement un fichier.

Dans ce didacticiel, nous vous montrons comment utiliser l'analyseur DOM XML pour créer un fichier XML.

Exemple d'analyseur DOM

À la fin de l'exemple, le fichier XML suivant nommé «file.xml» sera créé.


    
        yong
        mook kim
        example
        100000
    

File : WriteXMLFile.java - Classe Java pour créer un fichier XML.

package com.example.core;

import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class WriteXMLFile {

    public static void main(String argv[]) {

      try {

        DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docFactory.newDocumentBuilder();

        // root elements
        Document doc = docBuilder.newDocument();
        Element rootElement = doc.createElement("company");
        doc.appendChild(rootElement);

        // staff elements
        Element staff = doc.createElement("Staff");
        rootElement.appendChild(staff);

        // set attribute to staff element
        Attr attr = doc.createAttribute("id");
        attr.setValue("1");
        staff.setAttributeNode(attr);

        // shorten way
        // staff.setAttribute("id", "1");

        // firstname elements
        Element firstname = doc.createElement("firstname");
        firstname.appendChild(doc.createTextNode("yong"));
        staff.appendChild(firstname);

        // lastname elements
        Element lastname = doc.createElement("lastname");
        lastname.appendChild(doc.createTextNode("mook kim"));
        staff.appendChild(lastname);

        // nickname elements
        Element nickname = doc.createElement("nickname");
        nickname.appendChild(doc.createTextNode("example"));
        staff.appendChild(nickname);

        // salary elements
        Element salary = doc.createElement("salary");
        salary.appendChild(doc.createTextNode("100000"));
        staff.appendChild(salary);

        // write the content into xml file
        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = transformerFactory.newTransformer();
        DOMSource source = new DOMSource(doc);
        StreamResult result = new StreamResult(new File("C:\\file.xml"));

        // Output to console for testing
        // StreamResult result = new StreamResult(System.out);

        transformer.transform(source, result);

        System.out.println("File saved!");

      } catch (ParserConfigurationException pce) {
        pce.printStackTrace();
      } catch (TransformerException tfe) {
        tfe.printStackTrace();
      }
    }
}

Un nouveau fichier XML est créé en «C:\file.xml», avec le codage UTF-8 par défaut.

Note
Pour le débogage, vous pouvez modifier lesStreamResult pour afficher le contenu XML sur votre console.

StreamResult result =  new StreamResult(System.out);
transformer.transform(source, result);