Travailler avec XML en Java : bibliothèques et outils d'analyse

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec XML en Java : aperçu des bibliothèques et outils

XML (eXtensible Markup Language) reste l'un des formats clés pour le stockage et la transmission de données structurées dans les applications d'entreprise, les services web et les fichiers de configuration. Java offre un riche ensemble de bibliothèques intégrées et tierces pour travailler avec XML. Dans cet article, nous allons détailler les principaux outils, leurs caractéristiques et des exemples d'utilisation.



API intégrées pour travailler avec XML

La bibliothèque standard Java (Java SE) comprend trois API principales pour l'analyse et le traitement de XML :



1. DOM (Document Object Model)

DOM est une API qui charge l'intégralité du document XML en mémoire sous forme d'une structure arborescente. C'est pratique pour un accès aléatoire aux éléments, mais cela nécessite beaucoup de ressources pour les fichiers volumineux.

Quand l'utiliser : lorsque vous devez modifier fréquemment le document ou effectuer des requêtes complexes sur sa structure.



import javax.xml.parsers.*;import org.w3c.dom.*;

public class DomExample { public static void main(String[] args) throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse("data.xml");

NodeList books = doc.getElementsByTagName("book"); for (int i = 0; i < books.getLength(); i++) { Element book = (Element) books.item(i); String title = book.getElementsByTagName("title").item(0).getTextContent(); System.out.println("Livre : " + title); } }}


2. SAX (Simple API for XML)

SAX est un analyseur orienté événements. Il lit le document séquentiellement et appelle des méthodes de gestion lors de la rencontre de balises, d'attributs ou de texte. Il ne crée pas d'arbre en mémoire, ce qui le rend idéal pour les fichiers volumineux.

Quand l'utiliser : pour le traitement en flux de très gros fichiers XML (par exemple, des journaux ou des données d'exportation).



import org.xml.sax.*;import org.xml.sax.helpers.*;import javax.xml.parsers.*;

public class SaxExample extends DefaultHandler { public void startElement(String uri, String localName, String qName, Attributes attrs) { if ("book".equals(qName)) { System.out.println("Livre trouvé avec id : " + attrs.getValue("id")); } }

public static void main(String[] args) throws Exception { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); parser.parse("data.xml", new SaxExample()); }}


3. StAX (Streaming API for XML)

StAX est un analyseur pull en flux. Contrairement à SAX où les événements sont « poussés » vers le gestionnaire, StAX permet au programme de demander l'élément suivant (modèle pull). Cela offre plus de contrôle sur le processus d'analyse.

Quand l'utiliser : lorsque la flexibilité de SAX est nécessaire, mais avec la possibilité de suspendre et reprendre la lecture.



import javax.xml.stream.*;

public class StaxExample { public static void main(String[] args) throws Exception { XMLInputFactory factory = XMLInputFactory.newInstance(); XMLStreamReader reader = factory.createXMLStreamReader( new java.io.FileInputStream("data.xml"));

while (reader.hasNext()) { int event = reader.next(); if (event == XMLStreamConstants.START_ELEMENT && "title".equals(reader.getLocalName())) { System.out.println("Titre : " + reader.getElementText()); } } reader.close(); }}


Liaison XML avec des objets Java : JAXB

JAXB (Java Architecture for XML Binding) est une API standard pour convertir XML en objets Java et vice versa (marshalling/demarshalling). Par

Recommendations