3. Un premier code pour lire un fichier XML

3.1. Lecture avec Dom4J

La lecture d’un fichier XML dans un objet Java est un processus particulièrement simple, elle se fait avec le code suivant.

Exemple 3. Lecture d’un fichier XML avec Dom4J

// déclaration d'un fichier Java standard
File fichier =  new File("marin.xml") ;

 // création d'un objet de type SAXReader 
SAXReader reader =  new SAXReader() ;
 // lecture de ce fichier à l'aide de ce reader, et construction d'un objet Document
Document doc = reader.read(fichier) ;

Les classes SAXReader et Document appartiennent à l’API Dom4J. L’objet Document contient le document XML proprement dit, et nous permet d’accéder à ces différents éléments et attributs, comme nous le voyons sur l'exemple suivant.

Exemple 4. Utilisation de l’API Dom4J

// construction de l'élément racine du document XML
Element root = doc.getRootElement() ;

 // lecture des attributs de l'élément racine
List attributes = root.attributes() ;

 // lecture des sous-élément de la racine
List elements = root.elements() ;

 // lecture du nom complet "qualified name" (= espace de nom + nom)
QName qName = root.getQName() ;

 // lecture du nom
String nom = qName.getName() ; 
 // lecture du nom de l'espace de noms
String nomEspaceDeNoms = qName.getNamespaceURI() ;
 // lecture du préfixe utilisé pour cet espace de nom 
String nomPrefix = qName.getNamespacePrefix() ; 

 // lecture de l'espace de nom
Namespace nameSpace = root.getNamespace() ;
 // lecture de l'URI de cet espace de nom 
String uriNameSpace = nameSpace.getURI() ;
 // lecture du préfixe utilisé pour référencer cet espace dans le document 
String prefixNameSpace = nameSpace.getPrefix() ; 


String texte = root.getText() ; 

Attribute attribute = (Attribute)attributes.iterator().next() ; 
QName attributeQName = attribute.getQName() ; 
String value = attribute.getValue() ;
String nomAttribut = attribute.getName() ;

L’exemple précédent nous montre comment utiliser cette API pour parcourir un fichier XML. Nous reverrons plus en détails le fonctionnement de Dom4J dans la suite de ce document.
API Java pour XML
Retour au blog Java le soir
Cours & Tutoriaux
Table des matières
Introduction
1. Un peu d'histoire
2. Les API Java pour XML
Un premier exemple
1. Introduction
2. Structure de base d’un fichier XML
2.1. Un fichier XML simple
2.2. Notion d’espaces de noms
3. Un premier code pour lire un fichier XML
3.1. Lecture avec Dom4J
Description d’un document XML
1. Introduction
2. Organisation d'un document XML
2.1. Introduction
2.2. Nœuds dans un document XML
2.3. Relations entre nœuds dans un document XML
2.4. Ordre dans un document
2.5. Valeurs atomiques dans un document XML
2.6. Notion de PCDATA et CDATA
3. Document Type Definition (DTD)
3.1. Attacher un document à une DTD
3.2. Contenu d’une DTD
3.3. Exemple de DTD, analyse de web-app_2_3.dtd
4. XML Schema
4.1. Introduction
4.2. Un premier schéma
4.3. Attacher un document XML à un schéma
4.4. Types simples
4.5. Attribut
4.6. Restriction sur une déclaration
4.7. Types complexes
4.8. Contraindre un contenu simple
Lire et écrire du XML
1. Introduction
2. Utilisation de DOM4J
2.1. Introduction
2.2. Un premier exemple simple
2.3. Organisation de l'API
2.4. Classe Namespace
2.5. Classe QName
2.6. Interface Node
2.7. Interface Branch
2.8. Interface Document
2.9. Interface Element
2.10. Interface Attribute
2.11. Interface Text
3. Utilisation de Xerces
3.1. Introduction
3.2. Présentation de SAX
3.3. Présentation de DOM
Analyseur SAX en Xerces
1. Introduction
2. Création d'un analyseur SAX
2.1. Introduction
2.2. Objet DefaultHandler
2.3. Exemple d'analyse d'un fichier
3. Présentation de l'API
3.1. Interface ContentHandler
3.2. Interface ErrorHandler
3.3. Interface DTDHandler
3.4. Interface EntityResolver
3.5. Interface LexicalHandler
Manipuler un DOM en Xerces
1. Introduction
2. Création d'un DOM
3. Présentation de l'API
3.1. Organisation de l'API
3.2. Interface Node
3.3. Interface NodeList
3.4. Interface Element
3.5. Interface Attr
3.6. Interface CharacterData
3.7. Interface Comment
3.8. Interface CDATASection
3.9. Interface Text
3.10. Interface Entity
3.11. Interface EntityReference
3.12. Interface ProcessingInstruction
3.13. Interface Document
3.14. Interface DocumentFragment
3.15. Interface DocumentType
Interroger un document en XPath
1. Introduction, notion de nœud XML
2. Une première requête XPath
2.1. Un premier document à interroger
2.2. Une première requête
2.3. Forme d'une requête XPath