Programmation Java/XML
Il existe dans Java deux packages permettant de manipuler les documents XML :
Soit le document XML suivant :
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Documentation>
 <Site Wiki="Wikibooks">
 <Livre Wikilivre="Java">
 <Page1>Introduction</Page1>
 <Page2>Bases du langage</Page2>
 <Exemple>XML</Exemple>
 </Livre>
 </Site>
</Documentation>
Remarque : les espaces sont interdits dans les noms des balises car ils servent de séparateurs entre le nom et les attributs.
La méthode DOM.
Le programme suivant génère ce fichier XML dans le même répertoire :
import java.io.File;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.*;
public class XML_Creation_DOM
 public static void main(String argv[])
 try
 DocumentBuilderFactory XML_Fabrique_Constructeur = DocumentBuilderFactory.newInstance();
 DocumentBuilder XML_Constructeur = XML_Fabrique_Constructeur.newDocumentBuilder();
 Document XML_Document = XML_Constructeur.newDocument();
 Element documentation = XML_Document.createElement("Documentation");
 XML_Document.appendChild(documentation);
 Element site = XML_Document.createElement("Site");
 documentation.appendChild(site);
 Attr attribut1 = XML_Document.createAttribute("Wiki");
 attribut1.setValue("Wikibooks");
 site.setAttributeNode(attribut1);
 Element livre = XML_Document.createElement("Livre");
 site.appendChild(livre);
 Attr attribut2 = XML_Document.createAttribute("Wikilivre");
 attribut2.setValue("Java");
 livre.setAttributeNode(attribut2);
 Element page1 = XML_Document.createElement("Page1");
 page1.appendChild(XML_Document.createTextNode("Introduction"));
 livre.appendChild(page1);
 Element page2 = XML_Document.createElement("Page2");
 page2.appendChild(XML_Document.createTextNode("Bases du langage"));
 livre.appendChild(page2); 
 Element example = XML_Document.createElement("Exemple");
 example.appendChild(XML_Document.createTextNode("XML"));
 livre.appendChild(example);
 TransformerFactory XML_Fabrique_Transformeur = TransformerFactory.newInstance();
 Transformer XML_Transformeur = XML_Fabrique_Transformeur.newTransformer();
 DOMSource source = new DOMSource(XML_Document);
 StreamResult resultat = new StreamResult(new File("XML_résultat.xml"));
 XML_Transformeur.transform(source, resultat); 
 System.out.println("Le fichier XML a été généré !");
 catch (ParserConfigurationException pce)
 pce.printStackTrace();
 catch (TransformerException tfe)
 tfe.printStackTrace();
La méthode SAX.
Pour lire le fichier ci-dessus, il faut le parser avec un handler dont on redéfinit les méthodes :
import java.io.*;
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import org.xml.sax.helpers.DefaultHandler;
public class XML_Creation_SAX
 public static void main(String[] args)
 try
 SAXParserFactory factory = SAXParserFactory.newInstance();
 SAXParser parser = factory.newSAXParser();
 parser.parse("XML_résultat.xml",
 new DefaultHandler()
 public void startDocument() throws SAXException
 public void endDocument() throws SAXException
 public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
 public void endElement(String uri, String localName, String qName) throws SAXException
 public void characters(char[] ch, int start, int length) throws SAXException
 ); 
 catch (IOException e)
 System.err.println("Erreur de lecture : "+e);
 System.exit(1);
 catch (SAXException e)
 System.err.println("Erreur d'interprétation : "+e);
 System.exit(1);
 catch (ParserConfigurationException e)
 System.err.println("Pas d'interpréteur SAX pour la configuration demandée : "+e);
 System.exit(1);
La méthode JDOM.
 utilise les deux bibliothèques précédentes. Si l'erreur suivante survient : "error: package org.jdom does not exist", il suffit de télécharger la bibliothèque. Pour utilise la version 2, remplacer les codice_2 par des codice_3.

Livre de cuisine/Fouace aveyronnaise
Le système d'exploitation GNU-Linux/Sommaire