En Java, comment créer un fichier XML à l'aide de l'analyseur DOM ? Écrire un DOM en tant que fichier XML
Publié: 2019-01-11
Comme nous l'avons appris plus tôt "Moyen simple de compter le nombre d'éléments XML en Java", voici un autre code Java simple qui écrit un fichier XML en Java (DOM Parser).
- Écrire un DOM en tant que fichier XML
- Tutoriel Java DOM - écrire du XML avec DOM en Java
- Comment écrire un fichier XML en Java (DOM Parser)
- Java : un moyen simple d'écrire un fichier XML (DOM) en Java
C'est ce que je fais ici :
- Création d'un élément XML racine avec le nom :
Companies
- Création de 4 éléments d'
Company
- Chaque élément de l'entreprise a un
id
d'attribut - Chaque élément de l'entreprise a 3 éléments -
Name, Type, Employee
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
package crunchify . com . tutorials ; import org . w3c . dom . Document ; import org . w3c . dom . Element ; import org . w3c . dom . Node ; import javax . xml . parsers . DocumentBuilder ; import javax . xml . parsers . DocumentBuilderFactory ; import javax . xml . transform . OutputKeys ; import javax . xml . transform . Transformer ; import javax . xml . transform . TransformerFactory ; import javax . xml . transform . dom . DOMSource ; import javax . xml . transform . stream . StreamResult ; /** * @author Crunchify.com * In Java How to Create XML File using DOM parser? Writing Out a DOM as an XML File. * Version: 1.1 */ public class CrunchifyCreateXMLDOM { public static void main ( String [ ] args ) { // Defines a factory API that enables applications to obtain a parser that produces DOM object trees from XML documents. DocumentBuilderFactory crunchifyDocBuilderFactory = DocumentBuilderFactory . newInstance ( ) ; // Defines the API to obtain DOM Document instances from an XML document. DocumentBuilder crunchifyDocBuilder ; try { crunchifyDocBuilder = crunchifyDocBuilderFactory . newDocumentBuilder ( ) ; // The Document interface represents the entire HTML or XML document. Document crunchifyDoc = crunchifyDocBuilder . newDocument ( ) ; // The Element interface represents an element in an HTML or XML document. Element mainRootElement = crunchifyDoc . createElementNS ( "https://crunchify.com/CrunchifyCreateXMLDOM" , "Companies" ) ; // Adds the node newChild to the end of the list of children of this node. // If the newChild is already in the tree, it is first removed. crunchifyDoc . appendChild ( mainRootElement ) ; // append child elements to root element mainRootElement . appendChild ( getCompany ( crunchifyDoc , "1" , "Paypal" , "Payment" , "1000" ) ) ; mainRootElement . appendChild ( getCompany ( crunchifyDoc , "2" , "Amazon" , "Shopping" , "2000" ) ) ; mainRootElement . appendChild ( getCompany ( crunchifyDoc , "3" , "Google" , "Search" , "3000" ) ) ; mainRootElement . appendChild ( getCompany ( crunchifyDoc , "4" , "Crunchify" , "Java Tutorials" , "10" ) ) ; // output DOM XML to console // An instance of this abstract class can transform a source tree into a result tree. Transformer crunchifyTransformer = TransformerFactory . newInstance ( ) . newTransformer ( ) ; crunchifyTransformer . setOutputProperty ( OutputKeys . INDENT , "yes" ) ; // Acts as a holder for a transformation Source tree in the form of a Document Object Model (DOM) tree. DOMSource source = new DOMSource ( crunchifyDoc ) ; // Acts as an holder for a transformation result, which may be XML, plain Text, HTML, or some other form of markup. StreamResult console = new StreamResult ( System . out ) ; crunchifyTransformer . transform ( source , console ) ; System . out . println ( "\nTutorial by Crunchify. XML DOM Created Successfully.." ) ; } catch ( TransformerException | ParserConfigurationException e ) { e . printStackTrace ( ) ; } } // The Node interface is the primary datatype for the entire Document Object Model. // It represents a single node in the document tree. private static Node getCompany ( Document doc , String id , String name , String age , String role ) { Element crunchifyCompany = doc . createElement ( "Company" ) ; crunchifyCompany . setAttribute ( "id" , id ) ; crunchifyCompany . appendChild ( getCrunchifyCompanyElements ( doc , crunchifyCompany , "Name" , name ) ) ; crunchifyCompany . appendChild ( getCrunchifyCompanyElements ( doc , crunchifyCompany , "Type" , age ) ) ; crunchifyCompany . appendChild ( getCrunchifyCompanyElements ( doc , crunchifyCompany , "Employees" , role ) ) ; return crunchifyCompany ; } // Utility method to create text node private static Node getCrunchifyCompanyElements ( Document doc , Element element , String name , String value ) { Element node = doc . createElement ( name ) ; node . appendChild ( doc . createTextNode ( value ) ) ; return node ; } } |
DocumentBuilder Factory :
Définit une API de fabrique qui permet aux applications d'obtenir un analyseur qui produit des arborescences d'objets DOM à partir de documents XML.

Générateur de documents :
Définit l'API pour obtenir des instances de document DOM à partir d'un document XML.
appendChild() :
ajoute le nœud newChild à la fin de la liste des enfants de ce nœud. Si le newChild est déjà dans l'arborescence, il est d'abord supprimé.
Transformateur:
Une instance de cette classe abstraite peut transformer un arbre source en un arbre résultat.
Source DOM :
Agit en tant que support pour une arborescence source de transformation sous la forme d'une arborescence DOM (Document Object Model).
Résultat du flux :
Agit en tant que support pour un résultat de transformation, qui peut être XML, texte brut, HTML ou une autre forme de balisage.
-
The Node
est le type de données principal pour l'ensemble du modèle d'objet de document. Il représente un nœud unique dans l'arborescence du document. -
The Document
représente l'intégralité du document HTML ou XML. -
The Element
Java représente un élément dans un document HTML ou XML.
Sortie de la console Eclipse :
Exécutez le programme ci-dessus en tant qu'application Java pour obtenir un résultat similaire à celui ci-dessous.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<? xml version = "1.0" encoding = "UTF-8" standalone = "no" ?> < Companies xmlns = "https://crunchify.com/CrunchifyCreateXMLDOM" > < Company id = "1" > < Name > Paypal < / Name > < Type > Payment < / Type > < Employees > 1000 < / Employees > < / Company > < Company id = "2" > < Name > Amazon < / Name > < Type > Shopping < / Type > < Employees > 2000 < / Employees > < / Company > < Company id = "3" > < Name > Google < / Name > < Type > Search < / Type > < Employees > 3000 < / Employees > < / Company > < Company id = "4" > < Name > Crunchify < / Name > < Type > Java Tutorials < / Type > < Employees > 10 < / Employees > < / Company > < / Companies > Tutorial by Crunchify . XML DOM Created Successfully . . Process finished with exit code 0 |