Java Dom Parser Ejemplos para analizar XML

Java Dom Parser Ejemplos para analizar XML

XML es un lenguaje de marcado que se utiliza principalmente para intercambiar información entre dos aplicaciones, como bases de datos, sitios web, etc. Las etiquetas XML están definidas por el usuario. Es más legible por humanos que otros idiomas de margen. Java tiene muchas bibliotecas incorporadas para leer los documentos XML utilizando analizadores de XML Java como Dom Parser, Sax Parser, etc. Los métodos para usar el analizador DOM para leer los documentos XML usando Java se muestran en este tutorial.

Prerrequisitos:

  1. Instale la última versión de OpenJDK con JRE.
  2. Instale cualquier editor útil para escribir y ejecutar el código Java. Puede consultar este tutorial para instalar el editor de eclipse.

Crear un archivo XML

Cree un archivo XML llamado "Productos.xml ”con el siguiente script. El elemento raíz de este archivo contiene tres elementos infantiles con el nombre de la etiqueta, "producto". Cada etiqueta de "producto" tiene dos atributos que son "ID" y "Tipo". Cada etiqueta de "producto" tiene tres elementos infantiles que son "marca", "tamaño" y "precio".

productos.xml




Samsung
500 TB
70


Dar a luz
15"
100


Samsung
Medio
5


Logitech
Pequeño
10

Java dom analizador

El analizador del modelo de objeto de documento (DOM) es una de las formas de leer los valores de atributo y etiqueta del documento XML en Java. Los nuevos valores de nodo se pueden agregar, cambiar o eliminar utilizando este analizador. Lee todo el contenido del documento XML y lo carga en un formato de estructura de árboles. Los métodos para leer todo el contenido de un "productos.El archivo XML "y la búsqueda del contenido particular basado en un valor de atributo utilizando un analizador DOM se muestran en la siguiente parte de este tutorial.

Lea un archivo XML usando el analizador DOM

Cree un archivo Java con el siguiente código que analice el contenido de los "productos.archivo XML "e imprima el contenido de cada etiqueta de" producto "en forma tabular. El objeto de constructor de documentos se crea en el script para cargar el documento XML. A continuación, se verifica cada tipo de nodo y los valores de atributo de "ID" y "tipo" se leen utilizando el método getAttribute (). El método GetElementsByTagName () se usa para leer el contenido de las etiquetas de "marca", "tamaño" y "precio".

// Importar módulos necesarios
importar java.IO.Archivo;
Importar Javax.xml.analgésicos.DocumentBuilderFactory;
Importar Javax.xml.analgésicos.DocumentBuilder;
Org de importación.W3C.domina.Documento;
Org de importación.W3C.domina.Nodelista;
Org de importación.W3C.domina.Nodo;
Org de importación.W3C.domina.Elemento;
clase pública javaxmlParser
public static void main (string [] args)
intentar
// Crear documentBuilder para analizar el contenido del archivo XML
DocumentBuilderFactory Factory = DocumentBuilderFactory.nueva instancia();
DocumentBuilder Builder = Factory.newDocumentBuilder ();
// Crear objeto desde el archivo XML para analizar el documento XML
Documento xmldoc = constructor.analizar (nuevo archivo ("Productos.xml "));
// Crear objeto para leer el contenido del elemento particular
Nodelist ele = xmldoc.getElementsByTagName ("Producto");
// Imprima el título de la salida tabular
Sistema.afuera.println ("\ nid \ ttype \ tbrand \ t \ tsize \ tprice \ n");
// Lea todos los atributos y valores de elementos del documento XML utilizando el bucle
para (int i = 0; i < ele.getLength(); i++)
// Lee el nodo actual
Nodo nd = ele.artículo (i);
// Verifique el tipo de nodo
Si (nd.getNodeType () == nodo.Element_node)
Elemento cur_element = (elemento) nd;
Sistema.afuera.Imprimir (Cur_element.getAttribute ("id") + "\ t");
Sistema.afuera.Imprimir (Cur_element.getAttribute ("type") + "\ t");
Sistema.afuera.Imprimir (Cur_element.getElementsBytagName ("marca").Artículo (0).getTextContent () + "\ t \ t");
Sistema.afuera.Imprimir (Cur_element.getElementsBytagName ("tamaño").Artículo (0).getTextContent () + "\ t");
Sistema.afuera.Imprimir ("$" + Cur_element.getElementsBytagName ("Price").Artículo (0).getTextContent () + "\ t");

Sistema.afuera.println ();

Catch (Exception e)
mi.printStackTrace ();


La siguiente salida aparece después de ejecutar el código anterior. Los atributos y los valores de etiqueta del documento XML se imprimen en forma tabular. La etiqueta raíz del documento XML contiene tres etiquetas de "producto". Entonces, tres filas de valores se imprimen en la salida:

Buscar en un archivo XML utilizando el analizador DOM

Cree un archivo Java con el siguiente código que busque el contenido de la etiqueta particular de los "productos.archivo XML "basado en un valor de atributo. El contenido de la etiqueta se imprime si se encuentra alguna coincidencia. Se imprime un mensaje de error si no se encuentra ninguna coincidencia.

// Importar módulos necesarios
importar java.IO.Archivo;
Importar Javax.xml.analgésicos.DocumentBuilderFactory;
Importar Javax.xml.analgésicos.DocumentBuilder;
Org de importación.W3C.domina.Documento;
Org de importación.W3C.domina.Nodelista;
Org de importación.W3C.domina.Nodo;
Org de importación.W3C.domina.Elemento;
importar java.IO.*;
clase pública javaxmlParser2
public static void main (string [] args)
intentar
// Crear documentBuilder para analizar el contenido del archivo XML
DocumentBuilderFactory Factory = DocumentBuilderFactory.nueva instancia();
DocumentBuilder Builder = Factory.newDocumentBuilder ();
// Crear objeto desde el archivo XML para analizar el documento XML
Documento xmldoc = constructor.analizar (nuevo archivo ("Productos.xml "));
// Crear objeto para leer el contenido del elemento particular
Nodelist ele = xmldoc.getElementsByTagName ("Producto");
// Crear objeto para tomar el valor de identificación que se buscará
BufferedReader BUF = New BufferedReader (New InputStreamReader (sistema.en));
Sistema.afuera.imprimir ("Ingrese la identificación del producto:");
String Search = BUF.readline ();
// establecer el valor predeterminado
booleano encontrado = falso;
// Lea todos los atributos y valores de elementos del documento XML utilizando el bucle
para (int i = 0; i < ele.getLength(); i++)
// Lee el nodo actual
Nodo nd = ele.artículo (i);
// Verifique el tipo de nodo
Si (nd.getNodeType () == nodo.Element_node)
Elemento cur_element = (elemento) nd;
Cadena val = (string) cur_element.getAttribute ("id");
// verificar la identificación de búsqueda existe o no
if (val.iguales (búsqueda))

Sistema.afuera.println ("id:" + cur_element.getAttribute ("id") + "\ t");
Sistema.afuera.println ("Tipo:" + Cur_element.getAttribute ("type") + "\ t");
Sistema.afuera.println ("Brand:" + Cur_element.getElementsBytagName ("marca").Artículo (0).getTextContent () + "\ t \ t");
Sistema.afuera.println ("Price: $" + Cur_element.getElementsBytagName ("Price").Artículo (0).getTextContent () + "\ t");
encontrado = verdadero;
romper;



if (encontrado == falso)
Sistema.afuera.println ("ID no existe.");
Catch (Exception e)
mi.printStackTrace ();


La siguiente salida aparece después de ejecutar el código anterior. Según la salida, la ID del producto de P-002 existe en el archivo XML. Entonces, el contenido de la etiqueta que contiene esta identificación está impresa.

Conclusión

Los usos del analizador Java Dom para leer el contenido de un archivo XML simple de diferentes maneras se muestran en este tutorial utilizando dos ejemplos. Muchos otros analizadores están disponibles en Java para leer o modificar los documentos XML.