DocumentBuilderFactory
, qui pourra nous fournir un objet de type
DocumentBuilder
.
La classe
DocumentBuilderFactory
est abstraite, on ne peut donc pas l’instancier directement. Elle comporte une classe statique, que l’on peut invoquer, et qui nous renvoie une instance de
DocumentBuilderFactory
. Ceci constitue un exemple supplémentaire de classe factory.
Exemple 50. Construction d’un objet de type
DocumentBuilder
DocumentBuilderFactory dbc = DocumentBuilderFactory.newInstance() ; DocumentBuilder db = dbc.newDocumentBuilder() ;
DocumentBuilder
nous propose deux méthodes :
parse()
à laquelle il est possible de passer plusieurs types de paramètres. Elle permet de lire un document XML existant, et de construire un DOM dessus.
newDocument()
, qui permet de construire un DOM vide.
Document
. C’est dans cette interface que l’on trouve toutes les méthodes qui permettent de construire un document XML en mémoire.
On peut configurer notre
DocumentBuilder
lors de son invocation, en utilisant par exemple les méthodes
setValidating()
ou
setNamespaceAware()
.
Enfin, on peut ajouter son propre mécanisme de gestion des erreurs en passant à notre objet
DocumentBuilder
un objet
ErrorHandler
, du même type que celui que nous avons décrit dans la présentation de SAX.
Cela peut se faire par les lignes suivantes.
Exemple 51. Gestion des erreurs avec un
ErrorHandler
ErrorHandler errorHandler = new ErrorHandler() { // méthode invoquée lors d'une erreur de niveau "fatal" dans l'analyse du document public void fatalError (SAXParseException e) throws SAXException { // traitement de cette erreur } // méthode invoquée lors d'une erreur de niveau "error" dans l'analyse du document public void error (SAXParseException e) throws SAXException { // traitement de cette erreur } // méthode invoquée lors d'une erreur de niveau "warning" dans l'analyse du document public void warning (SAXParseException e) throws SAXException { // traitement de cette erreur } } // création d'un document builder DocumentBuilder db = ... ; // enregistrement de notre handler auprès du document builder db.setErrorHandler(eh) ;
Node
NodeList
Element
Attr
CharacterData
Comment
CDATASection
Text
Entity
EntityReference
ProcessingInstruction
Document
DocumentFragment
DocumentType