1. Préface
Qu'est-ce que JDom?
JDom est un projet open source basé sur une structure d'arbre, en utilisant la technologie Java pure pour analyser, générer, sérialiser et fonctionner sur des documents XML. Il sert directement la programmation Java, utilise les fonctionnalités du langage Java (surcharge de méthode, collections), combine les fonctions de Sax et Dom, et rend l'analyse du XML d'origine aussi simple que possible. Il nous sera facile d'utiliser JDom pour analyser le XML.
Avantages de JDom:
1. JDom est dédié à la technologie Java et prend moins de mémoire que les applications DOM.
2. JDom fournit une méthode de base plus simple et logique pour accéder aux informations XML
3. En plus du fichier XML, JDom peut également accéder à d'autres sources de données, par exemple, vous pouvez créer des classes pour accéder aux données à partir des résultats de la requête SQL.
Composition JDom:
JDom se compose de 6 packages
La classe d'éléments représente les éléments du document XML
org.jdom: la classe de base à utiliser pour analyser les fichiers XML
org.jdom.adaptères: classe Java contenant des adaptations DOM
org.jdom.filter: classe de filtre contenant des documents XML
org.jdom.input: classe Java qui contient des documents de lecture XML
org.jdom.output: Class contenant du document XML de sortie
Org.jdom.trans Form: contient des classes Java qui convertissent l'interface de document XML JDom en autres interfaces de document XML
Qu'est-ce que XML?
XML est un langage de balisage extensible largement utilisé. Il existe de nombreuses façons d'analyser le XML en Java, y compris les plus couramment utilisés tels que JDom, Dom4j, sax, etc.
Téléchargement du package JDom: http://www.jdom.org/downloads/index.html
Ce que le code de l'auteur ici est d'utiliser Java pour créer un XML et lire un XML, qui n'est utilisé que comme introduction de note.
2. Fonctionnement
Téléchargez le package JDom, dézip les fichiers jdom-2.0.6.jar, jdom-2.0.6-javadoc.jar, et importez le package dans le dossier lib. (Remarque, s'il y a une erreur, importez tous les packages dans JDom)
Exemple 1: Créez un fichier XML en utilisant JDom avec le nom People.xml
Créer une nouvelle classe CareateJdom
package com.book.jdom; importer java.io.filenotfoundException; import java.io.fileoutputStream; import java.io.ioexception; import org.jdom2.document; import org.jdom2.element; import org.jdom2.output.format; import org.jdom.output.xmloutput void main (String [] args) {// définir les personnes élémentaires, étudiant; People = New Element ("People"); Student = New Element ("Student"); // Définissez l'attribut étudiant.setAttribute ("Name", "Zhang San"); Student.SetAttribute ("Salaire", "8000"); // Définit le texte Student.SeTText ("Hehe"); // Ajouter à The Root Directory People.addContent (Student); // Créer un nouveau document. Document doc = new Document(people);//Read the format and assign it to the current FormatFormat format = Format.getCompactFormat();//Initialize the current format format.setEncoding("UTF-8");//Set the xml file indents format.setIndent(" ");//Build an xml output factory and give the format to the factory XMLOutputter xmlout = new Xmloutputter (format); essayez {// envoyer le texte écrit à l'usine, et créez un flux de sortie de fichier pour produire les données xmlout.output (doc, new FileOutputStream ("People.xml")); System.out.println ("Success!");} Catch (FileotFoundException E) (IOException e) {// TODO Generated Catch Blocke.printStackTrace ();}}} / * Résultat en cours d'exécution: <? Xml version = "1.0" Encoding = "utf-8"?> <opople> <étudiant name = "Zhang San" Salary = "8000" /> </poverse> * * / Student Name =Exemple 2: Utilisez JDom pour analyser le fichier People.xml
Créer une nouvelle classe readxml
package com.book.jdom; import java.io.ioException; import java.util.list; import org.jdom2.Document; import org.jdom2.element; import org.jdom2.jdomexception; import org.jdom2.input.saxbuilder; // read People.xml Document Class Public Readxml {public static natic qu'elle a parses xmlsaxbuilder sax = new saxbuilder (); // créer un document pour accepter le document de données doc; try {// get People.xml document doc = sax.build ("People.xml"); // Get Root Node Element People = doc.getRootelement (); // Get node data sous la liste des nœuds racine <élément> List> List> list = list = People.get.get.);); pour (int i = 0; i <list.size (); i ++) {élément e = list.get (i); // get Attribut Value System.out.println ("name:" + e.getAttributeValue ("name") + "SALAIRE:" + e.getAtTRributeValue ("Salaire")); // Get the Text Vale System.out.out.Trin (JDomexception e) {e.printStackTrace ();} catch (ioException e) {e.printStackTrace ();}}} / ** Résultat en cours: * Nom: Zhang San Salaire: 8000 hehe * * /Panage XML
Méthode pour obtenir différentes valeurs d'attribut de plusieurs mêmes noms de balises en utilisant jdom <? Xml version = "1.0" Encoding = "utf-8"?> <figi configuration> <key name = "China"> <valeur name = "TextKey"> China </value> <valeur name = "ENTIPÉ"> True </ Value> <Value Name = "PhotoidWidth"> 38PhotoidWidth </ Value> <Value> <Value> Name = "PhotoidHeight"> 38 </ Value> <key name = "adulte"> <valeur name = "CrownPercent"> 0.10 </ value> <value name = "Headpercent"> 0,60AdultheadPercent </value> </ key> <key name = "Child"> <Value Name = "Crownpercent"> 0.10 </value> <Value Name = "Headpercent"> 0,60childHead> </value> <Value Name = "Headpercent"> 0.60childHead> </ Value> <Value Name = " </ Key> <key name = "Australia"> <valeur name = "TextKey"> Australie </value> <valeur name = "activé"> true </value> <valeur name = "PhotoidWidth"> 35PhotoidWidth </ Value> <Value Name = "CroïdHeight"> 45 </ Value> <Value> <Value> <Value> <Value " Name = "Headpercent"> 0,756 "adulte" HeadPercent </value> </ key> <key name = "child"> <valeur name = "CrownPercent"> 0.072 </value> <key <key name = "Austria"> <Value Name = "TextKey"> Austria </ Value> <value Name = "> true> < Name = "PhotoidWidth"> 35PhotoidWidth </value> <valeur name = "PhotoidHeight"> 45 </value> <key name = "adulte"> <valeur name = "CrownPercent"> 0.064 </value> <value name = "keyPrence"> 0.744AdulTheadPrencent </value> </ key> <key nom = "enfant"> <value " Name = "CrownPercent"> 0,078 </value> <valeur name = "Headpercent"> 0.689ChildHeadPercent </value> </Key> </Key> </figuration> Entrée du package; Importer Java.io.ioException; Importer Java.util.ArrayList; Importer Java.util.List; Importer Org.JDom.Document; Importer Org.Jdom.Element; org.jdom.jdomexception; import org.jdom.input.saxbuilder; classe publique readxml {/ ** * @param args * / public static void Main (String [] args) lève jDomexception, ioexception {saxbuilder sb = new saxbuilder (); // Construire un document de document document doc = sb.build (test.class.getClassloader (). GetResourCeasStream ("nation.xml")); // Obtenez l'élément root élément root = doc.getRootelement (); // Locate <FIGIGURAGE> -> <KEY> list <element> list = root.getchildren ("key"); List <element> enfants = new ArrayList <element> (); List <element> childrens = new ArrayList <element> (); for (int i = 0; i <list.size (); i ++) {élément élément = (élément) list.get (i); System.out.print (élément.getAttributeValue ("name")); // Locate <FIGIGURAGE> -> <Key> -> <value> enfants = élément.getChildren ("Value"); pour (int j = 0; j <enfants.size (); j ++) {élément elementChildren = (élément) enfants.get (j); // Locate <FIGIGRUend> -> <eyy> -> <value name = "PhotoidWidth"> if (elementChildren.GetAttributeValue ("name"). System.out.print ("<-----------------" "+ elementChildren.getAttributeValue (" name ")); // Obtenez le contenu de <Fonfiguration> -> <key> -> <valeur name =" PhotoidWidth "> Tag System.out.print (", "+ élémentChildren.GetText ();}} Enfants.Clear (); // Locate <Fonfiate> -> <Key enfants = élément.getChildrens ("key"); <Key> -> <key name = "child"> -> <value> childrens = elementchildren.getchildren ("value"); pour (int k = 0; k <fildrens.size (); if (elementChildrens.getAttributeValue ("name"). equals ("Headpercent")) {System.out.println ("<----------->" + elementChildrens.getText ()); }}}}} }} 打印结果 : Chine <---------> PhotoidWidth, 38 PhotoidWidth <---------> 0,60ChildHeadPercentaustralia <---------> PhotoidWidth, 35photoidWidth <---------> 0,711ChildHeadPercentaustria <----------> PhotoidWidper pour cent, 35Photoidwidth <---------> 0,689CHILDEHTHEDPERCe qui précède est la méthode d'utilisation de JDom pour analyser XML dans Java Web introduit. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!