XML est un langage de balisage qui est principalement utilisé pour échanger des informations entre deux applications telles que des bases de données, des sites Web, etc. Les balises XML sont définies par l'utilisateur. Il est plus lisible par l'homme que d'autres langues de majoration. Java possède de nombreuses bibliothèques intégrées pour lire les documents XML à l'aide d'analyseurs XML Java tels que Dom Parser, Sax Parser, etc. Les méthodes d'utilisation de l'analyseur DOM pour lire les documents XML à l'aide de Java sont affichés dans ce tutoriel.
Conditions préalables:
- Installez la dernière version d'OpenJDK avec JRE.
- Installez n'importe quel éditeur utile pour écrire et exécuter le code Java. Vous pouvez consulter ce tutoriel pour installer l'éditeur Eclipse.
Créer un fichier XML
Créer un fichier XML nommé «Produits.xml »avec le script suivant. L'élément racine de ce fichier contient trois éléments enfants avec le nom de la balise, «produit». Chaque balise «produit» a deux attributs qui sont «ID» et «Type». Chaque balise «produit» a trois éléments enfants qui sont «marque», «taille» et «prix».
des produits.xml
Samsung
500 To
70
Tablier
15 "
100
Samsung
Moyen
5
Logitech
Petit
dix
Java Dom Parser
L'analyseur de modèle d'objet de document (DOM) est l'une des façons de lire les valeurs d'attribut et de balise du document XML en Java. Les nouvelles valeurs de nœud peuvent être ajoutées, modifiées ou supprimées à l'aide de cet analyseur. Il lit l'ensemble du contenu du document XML et le charge dans un format de structure d'arbre. Les méthodes de lecture de l'ensemble du contenu d'un «produits.Le fichier XML »et la recherche du contenu particulier en fonction d'une valeur d'attribut à l'aide d'un analyseur DOM sont affichés dans la partie suivante de ce tutoriel.
Lire un fichier XML à l'aide de Dom Parser
Créez un fichier Java avec le code suivant qui analyse le contenu des «produits.Fichier XML »et imprimez le contenu de chaque balise« Product »sous forme tabulaire. L'objet de constructeur de documents est créé dans le script pour charger le document XML. Ensuite, chaque type de nœud est vérifié et les valeurs d'attribut de «ID» et «Type» sont lues à l'aide de la méthode GetAttribute (). La méthode GetElementsByTagName () est utilisée pour lire le contenu des balises «marque», «taille» et «prix».
// importe des modules nécessaires
Importer Java.Io.Déposer;
Importer Javax.xml.analyseurs.DocumentBuilderFactory;
Importer Javax.xml.analyseurs.DocumentBuilder;
org d'importation.W3C.dom.Document;
org d'importation.W3C.dom.Nodelist;
org d'importation.W3C.dom.Nœud;
org d'importation.W3C.dom.Élément;
classe publique javaxmlparser
public static void main (String [] args)
essayer
// Créer DocumentBuilder pour analyser le contenu du fichier XML
DocumentBuilderFactory Factory = DocumentBuilderFactory.NewInstance ();
DocumentBuilder Builder = Factory.newDocumentBuilder ();
// Créer un objet à partir du fichier XML au document d'analyse XML
Document XMLDOC = Builder.Parse (nouveau fichier ("Produits.xml "));
// Créer un objet pour lire le contenu de l'élément particulier
Nodelist ele = xmldoc.GetElementsByTagName ("Product");
// imprime le titre de la sortie tabulaire
Système.dehors.println ("\ nid \ ttype \ tbrand \ t \ tsize \ tprice \ n");
// Lisez tous les attributs et valeurs d'élément du document XML en utilisant la boucle
pour (int i = 0; i < ele.getLength(); i++)
// Lire le nœud actuel
Nœud nd = ele.Article (i);
// Vérifiez le type de nœud
si (nd.getNodeType () == Node.Element_node)
Élément cur_element = (élément) nd;
Système.dehors.imprimer (cur_element.getAttribute ("id") + "\ t");
Système.dehors.imprimer (cur_element.getAttribute ("type") + "\ t");
Système.dehors.imprimer (cur_element.GetElementsByTagName ("marque").Article (0).getTextContent () + "\ t \ t");
Système.dehors.imprimer (cur_element.GetElementsByTagName ("taille").Article (0).getTextContent () + "\ t");
Système.dehors.imprimer ("$" + cur_element.GetElementsByTagName ("Prix").Article (0).getTextContent () + "\ t");
Système.dehors.println ();
catch (exception e)
e.printStackTrace ();
La sortie suivante apparaît après avoir exécuté le code précédent. Les attributs et les valeurs de balise du document XML sont imprimés sous forme tabulaire. La balise racine du document XML contient trois balises «produit». Ainsi, trois lignes de valeurs sont imprimées dans la sortie:
Rechercher dans un fichier XML à l'aide de l'analyseur DOM
Créez un fichier Java avec le code suivant qui recherche le contenu de la balise particulière des «produits.Fichier XML "basé sur une valeur d'attribut. Le contenu de la balise est imprimé si une correspondance est trouvée. Un message d'erreur est imprimé si aucune correspondance n'est trouvée.
// importe des modules nécessaires
Importer Java.Io.Déposer;
Importer Javax.xml.analyseurs.DocumentBuilderFactory;
Importer Javax.xml.analyseurs.DocumentBuilder;
org d'importation.W3C.dom.Document;
org d'importation.W3C.dom.Nodelist;
org d'importation.W3C.dom.Nœud;
org d'importation.W3C.dom.Élément;
Importer Java.Io.*
classe publique javaxmlparser2
public static void main (String [] args)
essayer
// Créer DocumentBuilder pour analyser le contenu du fichier XML
DocumentBuilderFactory Factory = DocumentBuilderFactory.NewInstance ();
DocumentBuilder Builder = Factory.newDocumentBuilder ();
// Créer un objet à partir du fichier XML au document d'analyse XML
Document XMLDOC = Builder.Parse (nouveau fichier ("Produits.xml "));
// Créer un objet pour lire le contenu de l'élément particulier
Nodelist ele = xmldoc.GetElementsByTagName ("Product");
// Créer un objet pour prendre une valeur d'ID qui sera recherchée
BufferedReader Buf = nouveau BufferedReader (New InputStreamReader (Système.dans));
Système.dehors.print ("Entrez l'ID du produit:");
String Search = buf.readLine ();
// Définir la valeur par défaut
booléen trouvé = false;
// Lisez tous les attributs et valeurs d'élément du document XML en utilisant la boucle
pour (int i = 0; i < ele.getLength(); i++)
// Lire le nœud actuel
Nœud nd = ele.Article (i);
// Vérifiez le type de nœud
si (nd.getNodeType () == Node.Element_node)
Élément cur_element = (élément) nd;
String val = (String) cur_element.getAttribute ("id");
// Vérifiez que l'ID de recherche existe ou non
si (val.égaux (recherche))
Système.dehors.println ("id:" + cur_element.getAttribute ("id") + "\ t");
Système.dehors.println ("type:" + cur_element.getAttribute ("type") + "\ t");
Système.dehors.println ("marque:" + cur_element.GetElementsByTagName ("marque").Article (0).getTextContent () + "\ t \ t");
Système.dehors.println ("prix: $" + cur_element.GetElementsByTagName ("Prix").Article (0).getTextContent () + "\ t");
Found = true;
casser;
if (trouvé == false)
Système.dehors.println ("ID n'existe pas.");
catch (exception e)
e.printStackTrace ();
La sortie suivante apparaît après avoir exécuté le code précédent. Selon la sortie, l'ID de produit du P-002 existe dans le fichier XML. Ainsi, le contenu de la balise qui contient cet ID est imprimé.
Conclusion
Les utilisations de l'analyseur Java Dom pour lire le contenu d'un fichier XML simple de différentes manières sont affichés dans ce tutoriel en utilisant deux exemples. Beaucoup d'autres analyseurs sont disponibles en Java pour lire ou modifier les documents XML.