1. Prefacio
¿Qué es JDOM?
JDOM es un proyecto de código abierto basado en una estructura de árbol, que utiliza tecnología Java pura para analizar, generar, serializar y operar en documentos XML. Sirve directamente a la programación de Java, utiliza las características del lenguaje Java (sobrecarga de métodos, colecciones), combina las funciones de SAX y DOM, y hace que el análisis del XML original sea lo más simple posible. Será fácil para nosotros usar JDOM para analizar el XML.
Ventajas de JDOM:
1. JDOM está dedicado a la tecnología Java y toma menos memoria que las aplicaciones DOM.
2. JDOM proporciona un método básico más simple y lógico para acceder a la información XML
3. Además del archivo XML, JDOM también puede acceder a otras fuentes de datos, por ejemplo, puede crear clases para acceder a datos de los resultados de la consulta SQL.
Composición de JDOM:
JDom consta de 6 paquetes
La clase de elementos representa elementos del documento XML
org.jdom: la clase básica que se utilizará para analizar archivos XML
org.jdom.adapters: clase Java que contiene adaptaciones DOM
org.jdom.filter: clase de filtro que contiene documentos XML
org.jdom.input: clase Java que contiene documentos XML de lectura
org.jdom.output: la clase que contiene el documento XML de salida
org.jdom.trans Form: contiene clases de Java que convierten la interfaz de documento JDOM XML en otras interfaces de documentos XML
¿Qué es XML?
XML es un lenguaje de marcado extensible ampliamente utilizado. Hay muchas formas de analizar XML en Java, incluidas las más utilizadas como JDOM, DOM4J, SAX, etc.
Descarga del paquete JDom: http://www.jdom.org/downloads/index.html
El código del autor aquí es usar Java para crear un XML y leer un XML, que solo se usa como una nota de introducción.
2. Operación
Descargue el paquete JDOM, descomprima los archivos jdom-2.0.6.jar, jdom-2.0.6-javadoc.jar e importe el paquete en la carpeta lib. (Tenga en cuenta que si hay algún error, importe todos los paquetes en JDOM)
Ejemplo 1: cree un archivo XML usando JDOM con el nombre People.xml
Crea una nueva clase Careatejdom
paquete com.book.jdom; import java.io.filenotfoundException; import java.io.fileOutputStream; import java.io.io.ioexception; import org.jdom2.document; import org.jdom2.element; import org.jdom2.output.format; import org.jdom2.jdom2.output.xmloutputter; // xml statejdom void main (string [] args) {// Definir el elemento elemento personas, estudiante; People = new Element ("People"); Student = New Element ("Student"); // Establezca el atributo Student.SetAttribute ("Nombre", "Zhang San"); Student.SetTribute ("Salario", "8000"); // Establezca el texto Student.Settext ("Jehe"); // Agregarlo al directorio raíz People.addcontent (estudiante); // Crea un nuevo documento. Documento doc = nuevo documento (People); // Lea el formato y asignarlo al formato de formato actual = formato Xmloutputter (format); try {// Envíe el texto escrito a la fábrica y cree una transmisión de salida de archivo para emitir los datos xmlout.output (doc, new outputStream ("pueblo.xml")); system.out.println ("éxito!");} Catch (FileNoTFoundException e) {// toDO AUTO-GENERACIONADO Catch (ioException e) {// tODO Generado automático BLOCKE.PRINTSTACKTRACE ();}}}/*Resultado en ejecución: <? Xml Version = "1.0" Encoding = "Utf-8"?> <People> <Sentude Name = "Zhang San" SALARY = "8000"/> </pearEjemplo 2: use JDOM para analizar el archivo People.xml
Crea una nueva clase Readxml
paquete com.book.jdom; import java.io.ioException; import java.util.list; import org.jdom2.document; importar org.jdom2.element; import org.jdom2.jdomexception; importar org.jdom2.input.saxBuilder; // leer personas. Parses xmlSaxBuilder sax = new SaxBuilder (); // Cree un documento para aceptar DATO Document doc; intente {// obtenga People.xml documento doc = sax.build ("People.xml"); // get get node element personas = doc.getrooTelement (); // Obtener datos de nodo bajo la lista de nodos raíz <emente> Lista = PEENTS.GETCHILD (););) for (int i = 0; i <list.size (); i ++) {element e = list.get (i); // get attribute value system.out.println ("name:"+e.getattributeValue ("name")+"salario:"+e.getTributeValue ("salary")); // get the text system.out.println (gagettext ();) (JDomException e) {E.PrintStackTrace ();} Catch (ioException e) {E.PrintStackTrace ();}}}/** Resultado en ejecución:* Nombre: Zhang San Salario: 8000 jeje**/Analizador XML
Método para obtener diferentes valores de atributo de múltiples mismos nombres de etiquetas usando JDom <? Xml versión = "1.0" encoding = "utf-8"?> <Configuration> <key name = "China"> <valor name = "textKey"> China </valor> <valor name = "habilitado"> true </valor> <valor name de valor = "fotoidewidth"> 38photoidwidthwidth Name = "photoidHeight"> 38 </value> <key name = "adulto"> <valor name = "CrownPergent"> 0.10 </value> <valor name = "headPercent"> 0.60adulTheadPerment </value> </key> <key name = "child"> <value name = "CrownPentcent"> 0.10 </value> <value name = "headpercent"> 0.60child </Key> </key> <key name = "Australia"> <valor name = "textKey"> Australia </value> <valor name = "habilitado"> true </value> <valor name = "photoidwidth"> 35photoidwidth </value> <valor name = "photoidheight"> 45 </value> <key name = "adulto"> <value name = "crownpercent"> 0.061 Name = "HeadPentcent"> 0.756 "Adulto" HeadPercent </valor> </key> <key name = "child"> <value name = "crownpercent"> 0.072 </valor> <valor name = "headpercent"> 0.711childheadpercent </valor> </key> <key name = "austria"> <value name = "textKey"> austria </value name> "oval" <Valor name = "photoidwidth"> 35photoidwidth </value> <valor name = "photoidHeight"> 45 </value> <key name = "adulto"> <valor name = "crownpercent"> 0.064 </valor> <valor name = "headpercent"> 0.74444444eadpercent </sone> </ey> <ke name = "child"> <value " Name = "Crownpercent"> 0.078 </value> <valor name = "HeadPercent"> 0.689ChildHeadpercent </value> </key> </ key> </figuration> paquete entrada; import java.io.ioException; import java.util.ArrayList; import java.util.list; import org.jdom.document; import og.element; import java.util.list; import org.jdom.jdomexception; import org.jdom.input.saxbuilder; public class ReadXml { / ** * @param args * / public static void main (string [] args) lanza jdomexception, ioexception {saxBuilder sb = new saxBuilder (); // Construye el objeto del documento Documento Doc = SB.Build (test.class.getClassLoader (). GetResourceasStream ("nation.xml")); // Obtener el elemento raíz del elemento root = doc.getRootElement (); // ubicar <Configuration> -> <Key> List <Elemement> list = root.getChildren ("Key"); List <ememem> children = new ArrayList <ememement> (); Lista <ememem> ChildRens = new ArrayList <ememement> (); for (int i = 0; i <list.size (); i ++) {element element = (element) list.get (i); System.out.print (element.getAttributeValue ("nombre")); // ubicar <Configuración> -> <Key> -> <valor> Children = Element.getChildren ("Value"); para (int j = 0; j <children.size (); j ++) {element elementChildren = (element) children.get (j); // Localizar <Configuración> -> <Key> -> <Valor name = "PhotoidWidth"> if (elementChildren.getAttributeValue ("name"). Equals ("photoidwidth")) {// get <figuration> -> <key> -> <value name = "photoidwidth"> atributo valor de valor de atributo de atributo de atributo System.out.print("<-----------------""+elementChildren.getAttributeValue("Name")); //Get the contents of <Configuration> -> <Key> -> <Value Name="PhotoIDWidth"> tag System.out.print(","+elementChildren.getText()); } } children.clear(); //Locate <Configuration> -> <Key> -> <Key> Children = Element.getChildren ("Key"); -> <Key> -> <Key Name = "Child"> -> <valor> ChildRens = ElementChildren.getChildren ("Valor"); if (elementChildrens.getAttributeValue ("name"). Equals ("HeadPercent")) {System.out.println ("<--------->"+elementChildrens.gettext ()); }}}}} }} 打印结果 : China <---------> Awidth de fotoides, 38 PhotoidWidth <---------> 0.60Childheadperceraustralia <---------> photoidwidth, 35photoidwidth <---------> 0.711ChildheadpenCentaustria <---------Lo anterior es el método de usar JDOM para analizar XML en Java Web Introducido a usted. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!