Está en la página 1de 11

Java y XML

Ya hemos visto cómo Java tiene su lugar en el mundo de


las aplicaciones web (applets, servlets, JSP).
Acabamos de ver cómo es el lenguaje XML.
Curso de Java
Entre las aplicaciones de XML en el mundo web están:
9 Mantenimiento de bases de datos en documentos de texto.
9 Intercambio de información entre sistemas (EDI).
Java también tendrá que entenderse con esas aplicaciones de XML.
Tendremos que saber hacer muchas cosas con documentos XML:
Java y XML 9 Generación de documentos XML.
9 Consumo de documentos XML.
9 Transferencia de información entre dos bases de datos.
Etcétera.

El lenguaje Java — Tema 13 — Java y XML


Luis Hernández Yáñez
Curso de Java Tema 13 – Java y XML - 1

Uso de Java en documentos XML fecha.jsp De la base de datos al documento XML

Java puede participar en la construcción de documentos XML. <%@ page contentType='text/xml' %>
<%@ page import="java.sql.*" %>
Normalmente mediante JSP (los guiones de servidor también
se pueden colocar en documentos XML): <?xml version="1.0" encoding="UTF-7"?>

<%@ page contentType='text/xml' %> <bd>


<%
try {
<?xml version="1.0" encoding="UTF-7"?> String urlBD = "jdbc:odbc:JDBC_ALUMNOS";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
<documento> Connection conexion = DriverManager.getConnection(urlBD);
<fecha><%= new java.util.Date() %></fecha> Statement select = conexion.createStatement();
</documento> String sql = "SELECT * FROM Tabla1 ORDER BY NOMBRE";
ResultSet resultadoSelect = select.executeQuery(sql);
while(resultadoSelect.next()) {
%>
<alumno>
<nombre><%= resultadoSelect.getString("Nombre") %></nombre>
<edad><%= resultadoSelect.getString("Edad") %></edad>
<dir><%= resultadoSelect.getString("Direccion") %></dir>
</alumno>

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 2 Curso de Java Tema 13 – Java y XML - 3
De la base de datos al documento XML De la base de datos al documento XML

<%
};
resultadoSelect.close();
select.close();
conexion.close();
}
catch(SQLException ex) {
out.println("Error: SQLException.");
}
catch( Exception ex) {
out.println("Error inesperado.");
}
%>
</bd>

bd.jsp

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 4 Curso de Java Tema 13 – Java y XML - 5

Análisis de documentos XML SAX: Simple API for XML

Análisis de un documento XML: extracción de su información. Permite indicar el código a ejecutar cada vez que se encuentra
un elemento mientras se analiza el documento XML.
Una vez que disponemos de la información del documento XML
podemos hacer con ella lo que necesitemos.
Dos tecnologías Java para el análisis de documentos XML:
9 SAX: Simple API for XML.
9 DOM: Document Object Model.

SAX proporciona un framework para realizar tareas a medida que


se analiza el documento XML y se van encontrando sus distintos
componentes (elementos, atributos, valores).
DOM se apoya en SAX para construir un árbol que representa
los componentes del documento XML y sus relaciones de inclusión.

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 6 Curso de Java Tema 13 – Java y XML - 7
SAX: Simple API for XML Análisis de documentos XML con SAX

DefaultHandler implementa las cuatro interfaces import java.io.*;


import org.xml.sax.*;
9 ContentHandler import org.xml.sax.helpers.DefaultHandler;
9 ErrorHandler import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.ParserConfigurationException;
9 DTDHandler
import javax.xml.parsers.SAXParser;
9 EntityResolver import java.util.Vector;
con métodos vacíos, de forma que podamos redefinir sólo aquellos public class Analiza extends DefaultHandler {
que nos interesen en cada aplicación particular.
org.xml.sax.helpers public Vector analiza(String archivo) {
DefaultHandler handler = new Analiza();
SAXParserFactory fact = SAXParserFactory.newInstance();
try {
SAXParserFactory crea un ejemplar de analizador (SAXParser). SAXParser parser = fact.newSAXParser();
parser.parse(new File(archivo), handler);
SAXParser analiza el documento XML apoyándose en los métodos
} catch (Throwable t) {
definidos en el DefaultHandler. t.printStackTrace();
javax.xml.parsers }
}

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 8 Curso de Java Tema 13 – Java y XML - 9

Análisis de documentos XML con SAX Análisis de documentos XML con SAX

<TIENDA>
public void startElement(String uri, String nombre,
String cualificado, Attributes atr) <EQUIPO TIPO="Sobremesa" COLOR="Negro">
throws SAXException {
// Comienzo de un elemento XML <NOMBRE>FX300 UM</NOMBRE>
}
<PRECIO>
public void endElement(String uri, String nombre,
String cualificado) <PESETAS>166386</PESETAS>
throws SAXException {
// Final de un elemento XML <EUROS>1000</EUROS>
}
</PRECIO>
public void characters(char[] buf, int ini, int lon)
throws SAXException {
// Secuencia de caracteres Comienzo de elemento
}
} Secuencia de caracteres

Final de elemento

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 10 Curso de Java Tema 13 – Java y XML - 11
Análisis de documentos XML con SAX Análisis de documentos XML con SAX Elemento.java

Guardaremos la información de cada elemento en un objeto. import org.xml.sax.*;


public class Elemento {
Debemos conocer la clase Attributes, que representa los String nombre;
atributos del elemento XML. String valor = null;
String atributos;
9 getLength(): número de atributos. public Elemento(String nombre, Attributes atr) {
9 getQName(i): nombre del atributo i-ésimo. this.nombre = nombre;
atributos = new String();
9 getValue(i): valor del atributo i-ésimo. for(int i = 0; i < atr.getLength(); i++) {
atributos += atr.getQName(i) + "='"
+ atr.getValue(i) + "' ";
Clase Elemento para guardar la información: }
}
public class Elemento { public void ponValor(String valor) {
String nombre; this.valor = valor;
}
String valor = null;
public String dameNombre() { return nombre; }
String atributos; Para simplificar, guardaremos public String dameValor() { return valor; }
... los atributos y sus valores public String dameAtributos() { return atributos; }
} en una cadena de texto. }

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 12 Curso de Java Tema 13 – Java y XML - 13

Análisis de documentos XML con SAX Análisis de documentos XML con SAX

import java.io.*; public void startElement(String uri, String nombre,


import org.xml.sax.*; String cualificado, Attributes atr)
import org.xml.sax.helpers.DefaultHandler; throws SAXException {
import javax.xml.parsers.SAXParserFactory; actual = new Elemento(cualificado, atr);
import javax.xml.parsers.ParserConfigurationException; lista.addElement(actual);
import javax.xml.parsers.SAXParser; texto = new String();
import java.util.Vector; }

public class Analiza extends DefaultHandler { public void endElement(String uri, String nombre, String cualificado)
private static Vector lista = new Vector(); throws SAXException {
private Elemento actual = null; if(actual != null && texto != null)
private String texto; actual.ponValor(texto.trim());
actual = null;
public Vector analiza(String archivo) { }
DefaultHandler handler = new Analiza();
SAXParserFactory fact = SAXParserFactory.newInstance(); public void characters(char[] buf, int ini, int lon)
try { throws SAXException {
SAXParser parser = fact.newSAXParser(); if(actual != null && texto != null) {
parser.parse(new File(archivo), handler); String valor = new String(buf, ini, lon);
} catch (Throwable t) { texto += valor;
t.printStackTrace(); }
} }
return lista; } Analiza.java
}

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 14 Curso de Java Tema 13 – Java y XML - 15
Análisis de documentos XML con SAX Prueba.java Análisis de documentos XML con SAX

import java.io.*; Elementos encontrados: 19


import java.util.Vector; Elemento: TIENDA
Atributos:
public class Prueba { Valor: null
public static void main(String argv[]) { Elemento: EQUIPO
Vector v; Atributos: TIPO='Sobremesa' COLOR='Negro'
Elemento el; Valor: null
Analiza an = new Analiza(); Elemento: NOMBRE
Atributos:
v = an.analiza("Equipos.xml");
Valor: FX300 UM
System.out.println("Elementos encontrados: " + v.size());
Elemento: PRECIO
for(int i = 0; i < v.size(); i++) { Atributos:
el = (Elemento) v.get(i); Valor: null
System.out.println("Elemento: " + el.dameNombre()); Elemento: PESETAS
System.out.println("Atributos: " + el.dameAtributos()); Atributos:
System.out.println("Valor: " + el.dameValor()); Valor: 166386
} Elemento: EUROS
} Atributos:
} Valor: 1000
Elemento: CARACTERISTICAS
Atributos: CPU='Pentium III' VELOCIDAD='800'
...

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 16 Curso de Java Tema 13 – Java y XML - 17

Análisis de documentos XML con SAX DOM: Document Object Model

Ejercicios Un framework que permite obtener un árbol cuyos nodos


representan el contenido de un documento XML.

Crea una página JSP analiza.jsp que muestre en forma de tabla


la información de los elementos XML encontrados en el documento
Equipos.xml.
Nota: Para poder utilizar las clases Analiza y Elemento
en la página JSP es necesario que esas clases se encuentren en:
C:\Blazix\classes

Crea un programa Eco.java que replique en System.out


el documento XML Equipos.xml después de haberlo analizado
con SAX.

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 18 Curso de Java Tema 13 – Java y XML - 19
DOM: Document Object Model Análisis de un documento XML con DOM

Document es el árbol que representa el contenido del documento. import javax.xml.parsers.DocumentBuilder;


import javax.xml.parsers.DocumentBuilderFactory;
Se obtiene con un analizador. import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
org.w3c.dom.Document
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import java.io.IOException;
DocumentBuilderFactory crea un ejemplar de analizador import org.w3c.dom.Document;
(DocumentBuilder). import org.w3c.dom.DOMException;

javax.xml.parsers.DocumentBuilderFactory public class DOM1 {


static Document document;

DocumentBuilder analiza el documento XML y genera el Document. public static void main(String argv[]) {
DocumentBuilderFactory factory =
javax.xml.parsers.DocumentBuilder DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse("Equipos.xml");
} catch ...

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 20 Curso de Java Tema 13 – Java y XML - 21

Tipo
El documento XML El árbol del documento (Document) Node Nombre
Valor

<?xml version="1.0" encoding="ISO-8859-1"?> Document


#document
<!-- File name: Equipos.xml -->
<?xml-stylesheet type="text/xsl" href="Equipos2.xsl"?> Comment ProcInstr Element
#comment xml-stylesheet TIENDA
<TIENDA>
File name: Equipos.xml type="text/xsl" href="Equipos2.xsl"
<EQUIPO TIPO="Sobremesa" COLOR="Negro">
<NOMBRE>FX300 UM</NOMBRE>
<PRECIO> Text Element Text Element Text
<PESETAS>166386</PESETAS> #text EQUIPO #text EQUIPO #text
<EUROS>1000</EUROS> ... ...
</PRECIO>
Text Element Text Element Text
<CARACTERISTICAS CPU="Pentium III" VELOCIDAD="800"> #text NOMBRE #text PRECIO #text
<MEMORIA>128</MEMORIA>
<DISCO>15</DISCO> Text
</CARACTERISTICAS> #text Text Element Text Element Text
<OPCIONES>Multimedia, Grabadora de CD</OPCIONES> Lista de FX300 UM #text PESETAS #text EUROS #text
</EQUIPO> atributos
<EQUIPO TIPO="Portátil" COLOR="Plateado"> Attr Attr Text Text
TIPO COLOR #text #text
<NOMBRE>LT150 HX</NOMBRE>
Sobremesa Negro 166386 1000
...

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 22 Curso de Java Tema 13 – Java y XML - 23
org.w3c.dom.Node org.w3c.dom.Node

Document es subclase de Node. Tipos de nodos

Algunos métodos de la clase Node:


String getNodeName() Nombre
String getNodeType() Tipo
String getNodeValue() Valor
boolean hasAttributes() ¿Tiene atributos?
NamedNodeMap getAttributes() Lista de atributos
boolean hasChildNodes() ¿Tiene hijos?
NodeList getChilNodes() Lista de hijos

Otros métodos permiten modificar o ampliar la estructura del árbol.

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 24 Curso de Java Tema 13 – Java y XML - 25

org.w3c.dom.NodeList Recorrido del árbol DOM

Para la lista de nodos hijos. import javax.xml.parsers.DocumentBuilder;


import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
Métodos de la clase NodeList:
import org.xml.sax.SAXException;
int getLength() Número de nodos en la lista import org.xml.sax.SAXParseException;
import java.io.IOException;
Node item(int) Nodo en la posición indicada import org.w3c.dom.Document;
import org.w3c.dom.DOMException;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

NodeList hijos = nodo.getChildNodes(); public class DOM1 {


for(int n = 0; n < hijos.getLength(); n++) { static Document document;
Node hijo = hijos.item(n);
... public static void main(String argv[]) {
} DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 26 Curso de Java Tema 13 – Java y XML - 27
Recorrido del árbol DOM Recorrido del árbol DOM

try { // An array of names for DOM node-types


DocumentBuilder builder = factory.newDocumentBuilder(); static final String[] typeName = {
document = builder.parse("Equipos.xml"); "none",
procesa(document); "Element",
} catch (SAXParseException spe) { "Attr",
// Error generated by the parser "Text",
System.out.println("** Parsing error**"); "CDATA",
} catch (SAXException sxe) { "EntityRef",
// Error generated during parsing "Entity",
Exception x = sxe; "ProcInstr",
if(sxe.getException() != null) "Comment",
x = sxe.getException(); "Document",
x.printStackTrace(); "DocType",
} catch (ParserConfigurationException pce) { "DocFragment",
// Parser with specified options can't be built "Notation",
pce.printStackTrace(); };
} catch (IOException ioe) {
// I/O error
ioe.printStackTrace();
}
} // main()

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 28 Curso de Java Tema 13 – Java y XML - 29

Recorrido del árbol DOM Recorrido del árbol DOM


Document: #document
public static void procesa(Node nodo) { Comment: #comment: File name: Equipos.xml
String s = typeName[nodo.getNodeType()]; ProcInstr: xml-stylesheet: type="text/xsl" href="Equipos2.xsl"
s += ": " + nodo.getNodeName(); Element: TIENDA
if(nodo.getNodeValue() != null) { Text: #text:
Element: EQUIPO
s += ": " + nodo.getNodeValue().trim(); Text: #text:
} Element: NOMBRE
System.out.println(s); Text: #text: FX300 UM
Text: #text:
NodeList hijos = nodo.getChildNodes(); Element: PRECIO Tipo: Nombre: Valor
for(int n = 0; n < hijos.getLength(); n++) { Text: #text:
Node hijo = hijos.item(n); Element: PESETAS
procesa(hijo); Text: #text: 166386 Si hay valor asociado
Text: #text:
} Element: EUROS
} Text: #text: 1000
} // Clase DOM1 Text: #text:
Text: #text:
Element: CARACTERISTICAS
Text: #text:
Element: MEMORIA
Text: #text: 128
Text: #text:
Element: DISCO
DOM1.java Text: #text: 15
...

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 30 Curso de Java Tema 13 – Java y XML - 31
org.w3c.dom.NamedNodeMap El documento XML a partir del árbol DOM

Para las listas de atributos, que también son nodos. Incluyendo atributos pero obviando el prólogo.
Hay que importar NamedNodeMap:
Algunos métodos de la clase NamedNodeMap: import org.w3c.dom.NamedNodeMap;
int getLength() Número de nodos en la lista
Node item(int) Nodo en la posición indicada public class DOM2 {
static Document document;

public static void main(String argv[]) {


DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse("Equipos.xml");
procesa(document);
System.out.println();
} catch (SAXParseException spe) {
...

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 32 Curso de Java Tema 13 – Java y XML - 33

El documento XML a partir del árbol DOM El documento XML a partir del árbol DOM

...
} // main() NodeList hijos = nodo.getChildNodes();
for(int n = 0; n < hijos.getLength(); n++) {
public static void procesa(Node nodo) { Node hijo = hijos.item(n);
String nombre = ""; procesa(hijo);
if(nodo.getNodeType() == 1) { // Un elemento }
nombre = nodo.getNodeName(); if(nodo.getNodeType() == 1) { // Un elemento
System.out.print("<" + nombre); System.out.print("</" + nombre + ">");
if(nodo.hasAttributes()) { }
NamedNodeMap atributos = nodo.getAttributes(); }
for(int a = 0; a < atributos.getLength(); a++) { } // Clase DOM2
Node atr = atributos.item(a);
System.out.print(" " + atr.getNodeName() + "='"
+ atr.getNodeValue() + "'");
}
}
System.out.print(">");
}
else if(nodo.getNodeType() == 3) { // Texto
System.out.print(nodo.getNodeValue());
} DOM2.java

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 34 Curso de Java Tema 13 – Java y XML - 35
El documento XML a partir del árbol DOM Ejercicio
<TIENDA> Crear un programa DOM3 que a partir del árbol DOM del documento
<EQUIPO TIPO='Sobremesa' COLOR='Negro'>
<NOMBRE>FX300 UM</NOMBRE> Equipos.xml construya una lista (vector) de los equipos descritos
<PRECIO> en ese documento XML. Luego mostrará la información de la lista.
<PESETAS>166386</PESETAS>
<EUROS>1000</EUROS>
</PRECIO>
La información que contiene el documento sobre cada equipo
<CARACTERISTICAS CPU='Pentium III' VELOCIDAD='800'> (elementos terminales y atributos) es:
<MEMORIA>128</MEMORIA>
<DISCO>15</DISCO> 9 Nombre
</CARACTERISTICAS>
<OPCIONES>Multimedia, Grabadora de CD</OPCIONES> 9 Tipo
</EQUIPO> 9 Color
<EQUIPO TIPO='Portßtil' COLOR='Plateado'>
<NOMBRE>LT150 HX</NOMBRE> 9 Pesetas
<PRECIO> 9 Euros Todos los datos en forma
<PESETAS>256800</PESETAS>
<EUROS>1346.28</EUROS> 9 CPU de cadenas de caracteres
</PRECIO> 9 Velocidad
<CARACTERISTICAS CPU='Pentium III' VELOCIDAD='700'>
<MEMORIA>128</MEMORIA> 9 Memoria
<DISCO>10</DISCO>
</CARACTERISTICAS> 9 Disco
<OPCIONES>Multimedia, CD 50X</OPCIONES> 9 Opciones
</EQUIPO>
</TIENDA> Crear una clase auxiliar Equipo que reúna la información del equipo.

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 36 Curso de Java Tema 13 – Java y XML - 37

Intercambio electrónico de datos (EDI) Del documento XML a la base de datos

Al principio de este tema vimos cómo convertir a XML el contenido ...


de una tabla de una base de datos. import java.sql.*;

El intercambio electrónico de datos (EDI) puede realizarse


por medio de documentos XML: public class DOMBD {
static Document document;
static Vector lista = new Vector();
static Equipo eq;

public static void main(String argv[]) {


DocumentBuilderFactory factory =
Java Equipos.xml Java
BD origen BD destino DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse("Equipos.xml");
DOMBD dom = new DOMBD();
} catch (SAXParseException spe) {
...
Lo que nos queda por hacer es volcar el documento XML en una
tabla de una base de datos.

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 38 Curso de Java Tema 13 – Java y XML - 39
Del documento XML a la base de datos Del documento XML a la base de datos

} // main()
public String valor(Node nodo) {
public DOMBD() { NodeList hijos = nodo.getChildNodes();
Node nodo = document; String v = new String();
procesa(nodo); for(int n = 0; n < hijos.getLength(); n++) {
try { Node hijo = hijos.item(n);
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); if(hijo.getNodeType() == 3) v += hijo.getNodeValue();
Connection conexion = }
DriverManager.getConnection("jdbc:odbc:JDBC_EQUIPOS"); return v;
Statement stmt = conexion.createStatement(); }
for(int i = 0; i < lista.size(); i++) {
eq = (Equipo) lista.get(i); public void procesa(Node nodo) {
String sql = "INSERT INTO Equipos (Nombre, Tipo, Color, PrecioPts"; String nombre = "";
sql += ", PrecioEur, CPU, Velocidad, Memoria, Disco, Opciones) VALUES ("; if(nodo.getNodeType() == 1) { // Un elemento
sql += "'" + eq.nombre + "', '" + eq.tipo + "', '" + eq.color; if(nodo.getNodeName() == "EQUIPO") eq = new Equipo();
sql += "', " + eq.pesetas + ", " + eq.euros + ", '" + eq.cpu; else if(nodo.getNodeName()=="NOMBRE") eq.nombre=valor(nodo);
sql += "', " + eq.velocidad + ", " + eq.memoria + ", " + eq.disco; else if(nodo.getNodeName()=="PESETAS") eq.pesetas=valor(nodo);
sql += ", '" + eq.opciones + "')"; else if(nodo.getNodeName()=="EUROS") eq.euros=valor(nodo);
stmt.executeUpdate(sql); else if(nodo.getNodeName()=="MEMORIA") eq.memoria=valor(nodo);
} conexion.close(); else if(nodo.getNodeName()=="DISCO") eq.disco=valor(nodo);
} catch(Exception e) { else if(nodo.getNodeName()=="OPCIONES") eq.opciones=valor(nodo);
e.printStackTrace();
}
} // DOMBD()

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 40 Curso de Java Tema 13 – Java y XML - 41

Del documento XML a la base de datos DOMBD.java Del documento XML a la base de datos

if(nodo.hasAttributes()) {
NamedNodeMap atributos = nodo.getAttributes();
for(int a = 0; a < atributos.getLength(); a++) {
Node atr = atributos.item(a);
if(atr.getNodeName() == "TIPO") eq.tipo = atr.getNodeValue();
if(atr.getNodeName() == "COLOR") eq.color = atr.getNodeValue();
if(atr.getNodeName() == "CPU") eq.cpu = atr.getNodeValue();
if(atr.getNodeName() == "VELOCIDAD") eq.velocidad = atr.getNodeValue();
} } }
NodeList hijos = nodo.getChildNodes();
for(int n = 0; n < hijos.getLength(); n++) {
Node hijo = hijos.item(n);
procesa(hijo);
}
if(nodo.getNodeType() == 1) { // Un elemento
if(nodo.getNodeName() == "EQUIPO") lista.addElement(eq);
}
} // procesa()

public class Equipo {


public String nombre, tipo, color, pesetas, euros,
cpu, velocidad, memoria, disco, opciones;
}
} // Clase DOMBD

Luis Hernández Yáñez Luis Hernández Yáñez


Curso de Java Tema 13 – Java y XML - 42 Curso de Java Tema 13 – Java y XML - 43

También podría gustarte