Manipulation des fichiers XML avec
les API Java : DOM et SAX

L’Agence Nationale de Réglementation des Télécommunications
...
plan
• introduction
• Notion de parseur
• Parseur SAX
• Parseur DOM
• Applications
• conclusion
13/12/2013

projet xml
DOM...
Introduction

13/12/2013

projet xml
DOM et SAX

3
Notion de parseur

Parseur SAX

Applications

DOM

SAX
utilise les événements pour
analyser et exploiter les
documents au ...
Notion de parseur

Parseur SAX

Parseur DOM

Applications

les avantages de SAX
• peu gourmand en ressources mémoire
• rap...
Notion de parseur

Parseur SAX

Parseur DOM

Applications

les avantages de DOM
• parcours libre de l'arbre
• possibilité ...
Les implémentations du W3C

Notion de parseur

13/12/2013

Parseur SAX

Parseur DOM

Applications

Xerces, implémentation ...
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Java API for XML
Processing: JAXP

API indépendante de tout
fou...
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Gestion du contenu :ContentHandler

Gestion des erreurs :ErrorH...
Gestion des
contenus:ContentHandler

Notion de parseur

13/12/2013

Parseur SAX

Parseur DOM

Applications

startDocument(...
Notion de parseur

Parseur SAX

Balise ouvrante

endElement()

Parseur DOM

production
d’un
événement

<contact id="3">
<n...
Gestion des erreurs :
errorHandler

Notion de parseur

13/12/2013

Parseur SAX

Parseur DOM

Applications

les erreurs sim...
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Autres interfaces :
Gestion
de la DTD

Données
lexicales

13/12...
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Ce qui donne
un document
Créer un
document
Builder

instence
Do...
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Les interfaces du package org.w3c.dom:

13/12/2013

projet xml
...
Notion de parseur

Parseur SAX

Parseur DOM

Applications

La classe : Node
Constantes : Element_Node=1; pour typer le nœu...
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Parcoure d’un arbre

13/12/2013

projet xml
DOM et SAX

17
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Modification d’un arbre

13/12/2013

projet xml
DOM et SAX

18
Notion de parseur

Parseur SAX

Parseur DOM

Applications

La classe : Element
getTagName()

getElementsByTagName()

getAt...
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Les autres classes
La classe Attr : getName() , getValue(), set...
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Validation d’un document xml
Gestion d’un emploi du temps

13/1...
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Validation d’un document xml
Méthode de validation par DOM
• DF...
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Validation d’un document xml

13/12/2013

projet xml
DOM et SAX...
Notion de parseur

Parseur SAX

Parseur DOM

Applications

Validation d’un document xml

13/12/2013

projet xml
DOM et SAX...
Notion de parseur

Parseur SAX

Parseur DOM

Applications

gestion d’un emploi du temps

13/12/2013

projet xml
DOM et SAX...
Notion de parseur

Parseur SAX

Parseur DOM

Applications

gestion d’un emploi du temps

13/12/2013

projet xml
DOM et SAX...
Conclusion
Accès au information d’un xml par DOM et
SAX
SAX est simple et peut gourmande en
mémoire mais DOM offre plus de...
Merci pour votre
attention

13/12/2013

projet xml
DOM et SAX

28
Prochain SlideShare
Chargement dans…5
×

Xml

544 vues

Publié le

Manipulation des fichiers XML avec les API Java : DOM et SAX

Publié dans : Formation
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
544
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
40
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Xml

  1. 1. Manipulation des fichiers XML avec les API Java : DOM et SAX L’Agence Nationale de Réglementation des Télécommunications L'Institut National des Postes et Télécommunications Réalisé par : Said BENAISSA Mohamed BOURRICH
  2. 2. plan • introduction • Notion de parseur • Parseur SAX • Parseur DOM • Applications • conclusion 13/12/2013 projet xml DOM et SAX 2
  3. 3. Introduction 13/12/2013 projet xml DOM et SAX 3
  4. 4. Notion de parseur Parseur SAX Applications DOM SAX utilise les événements pour analyser et exploiter les documents au format XML 13/12/2013 Parseur DOM consiste à la construction d'un modèle objet en mémoire projet xml DOM et SAX 4
  5. 5. Notion de parseur Parseur SAX Parseur DOM Applications les avantages de SAX • peu gourmand en ressources mémoire • rapide • principes faciles à mettre en œuvre • permet de ne traiter que les données utiles les inconvénients de SAX • traite les données séquentiellement • un peu plus difficile à programmer, • sauvegarder les informations pour les traiter 13/12/2013 projet xml DOM et SAX 5
  6. 6. Notion de parseur Parseur SAX Parseur DOM Applications les avantages de DOM • parcours libre de l'arbre • possibilité de modifier la structure et le contenu de l'arbre les inconvénients de DOM • gourmand en mémoire • doit traiter tout le document avant d'exploiter les résultats 13/12/2013 projet xml DOM et SAX 6
  7. 7. Les implémentations du W3C Notion de parseur 13/12/2013 Parseur SAX Parseur DOM Applications Xerces, implémentation de SAX et DOM de l’ASF (Apache Software Fondation) JDom, qui est une implémentation alternative Dom4J, qui implémente également SAX, DOM et XSL projet xml DOM et SAX 7
  8. 8. Notion de parseur Parseur SAX Parseur DOM Applications Java API for XML Processing: JAXP API indépendante de tout fournisseur Unification des approches SAX & DOM Packages : Exceptions : javax.xml.parsers javax.xml.transform FactoryConfigurationError org.w3c.dom ParserConfigurationException org.xml.sax 13/12/2013 projet xml DOM et SAX 8
  9. 9. Notion de parseur Parseur SAX Parseur DOM Applications Gestion du contenu :ContentHandler Gestion des erreurs :ErrorHandler Lire le document et reconnaitre les structures (balise,attribut) Gestions de la DTD : DTDHandler Gestion des entités : EntityResolver Les 4 interfaces sont implémentées par : DefaultHandler 13/12/2013 projet xml DOM et SAX 9
  10. 10. Gestion des contenus:ContentHandler Notion de parseur 13/12/2013 Parseur SAX Parseur DOM Applications startDocument();endDocument() startElement(String uri, String sName, String qName, Attributes atts) characters(char[] ch,int start,int length) projet xml DOM et SAX 10
  11. 11. Notion de parseur Parseur SAX Balise ouvrante endElement() Parseur DOM production d’un événement <contact id="3"> <nom> nom </nom> </contact> production d’un événement Characteres() 13/12/2013 production d’un événement projet xml DOM et SAX Applications startElement() un tableau associatif pour les attributs Chine de caractères Chaine de caractères 11
  12. 12. Gestion des erreurs : errorHandler Notion de parseur 13/12/2013 Parseur SAX Parseur DOM Applications les erreurs simples : error() les erreurs fatales : fatalError() les alertes : warning() projet xml DOM et SAX 12
  13. 13. Notion de parseur Parseur SAX Parseur DOM Applications Autres interfaces : Gestion de la DTD Données lexicales 13/12/2013 • EntityResolver :gestion des entités • LexicalHandler : avoir accès aux données de type DTD et CDATA projet xml DOM et SAX 13
  14. 14. Notion de parseur Parseur SAX Parseur DOM Applications Ce qui donne un document Créer un document Builder instence DocumentBuilder Factory 13/12/2013 projet xml DOM et SAX 14
  15. 15. Notion de parseur Parseur SAX Parseur DOM Applications Les interfaces du package org.w3c.dom: 13/12/2013 projet xml DOM et SAX 15
  16. 16. Notion de parseur Parseur SAX Parseur DOM Applications La classe : Node Constantes : Element_Node=1; pour typer le nœud courant getLocalName(index), getNameSpaceURI(), getNodeName() getAttributes(), hasAttributes(). getNodeName(), getNodeType(), getNodeValue(),setNodeVa lue(). Node getFirstChild(), removeChild(Node),replaceChild(Node new, Node old), 13/12/2013 projet xml DOM et SAX 16
  17. 17. Notion de parseur Parseur SAX Parseur DOM Applications Parcoure d’un arbre 13/12/2013 projet xml DOM et SAX 17
  18. 18. Notion de parseur Parseur SAX Parseur DOM Applications Modification d’un arbre 13/12/2013 projet xml DOM et SAX 18
  19. 19. Notion de parseur Parseur SAX Parseur DOM Applications La classe : Element getTagName() getElementsByTagName() getAttribute(), getAttributeNode() removeAttribute(String), removeAttributeNode(Attr) 13/12/2013 projet xml DOM et SAX 19
  20. 20. Notion de parseur Parseur SAX Parseur DOM Applications Les autres classes La classe Attr : getName() , getValue(), setValue(String) La classe Entity : getNotationName() La classe Document : getDocumentElement() , getElementsByTagName(String) La classe Comment La classe NodeListe : fournir une liste ordonnée : NodeList fils = n.getChildNodes(); 13/12/2013 projet xml DOM et SAX 20
  21. 21. Notion de parseur Parseur SAX Parseur DOM Applications Validation d’un document xml Gestion d’un emploi du temps 13/12/2013 projet xml DOM et SAX 21
  22. 22. Notion de parseur Parseur SAX Parseur DOM Applications Validation d’un document xml Méthode de validation par DOM • DF.setValidating(true); • DF.setAttribute(JAXP_SCHEMA_LANGUAGE,W3C_XML_SCHEMA); • DF.setAttribute(JAXP_SCHEMA_SOURCE,”fichier.xsd”) ; Méthode de validation par SAX • SF.setValidating(true); • SP = SF.newSAXParser(); • SP.setProperty(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA); • SP.setProperty(JAXP_SCHEMA_SOURCE,”fichier.xsd”); 13/12/2013 projet xml DOM et SAX 22
  23. 23. Notion de parseur Parseur SAX Parseur DOM Applications Validation d’un document xml 13/12/2013 projet xml DOM et SAX 23
  24. 24. Notion de parseur Parseur SAX Parseur DOM Applications Validation d’un document xml 13/12/2013 projet xml DOM et SAX 24
  25. 25. Notion de parseur Parseur SAX Parseur DOM Applications gestion d’un emploi du temps 13/12/2013 projet xml DOM et SAX 25
  26. 26. Notion de parseur Parseur SAX Parseur DOM Applications gestion d’un emploi du temps 13/12/2013 projet xml DOM et SAX 26
  27. 27. Conclusion Accès au information d’un xml par DOM et SAX SAX est simple et peut gourmande en mémoire mais DOM offre plus de fonctionnalités SAX et DON sont complémentaires Deux applications illustrant l’utilisation de DOM et SAX 13/12/2013 projet xml DOM et SAX 27
  28. 28. Merci pour votre attention 13/12/2013 projet xml DOM et SAX 28

×