Foros del Web » Programación para mayores de 30 ;) » Java »

Recoger valores de xml en java

Estas en el tema de Recoger valores de xml en java en el foro de Java en Foros del Web. Hola!! Si tengo un documento xml con una serie de valores, ¿cómo haría para leer con java el xml para que me coja esos valores, ...
  #1 (permalink)  
Antiguo 08/10/2007, 10:27
 
Fecha de Ingreso: febrero-2005
Mensajes: 44
Antigüedad: 19 años, 2 meses
Puntos: 1
Recoger valores de xml en java

Hola!!

Si tengo un documento xml con una serie de valores, ¿cómo haría para leer con java el xml para que me coja esos valores, ya que luego necesito esos datos al invocar unos web services y pasarles esos valores?

Para entenderlo yo con un xml que tenga dos valores por ejemplo:

<?xml version="1.0" encoding="ISO-8859-1"?>
<datos>
<valor1>Equipo</valor1>
<valor2>Sistema</valor2>
</datos>

Cómo cogería los datos "Equipo" y "Sistema" en java, de forma que los guarde en variables para luego poder usarlos.

Espero ayuda pliss!

Muchas gracias por adelantado!!
  #2 (permalink)  
Antiguo 08/10/2007, 19:12
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: Recoger valores de xml en java

Cuando me tocó hacerlo, lo hice así:

Primero se necesita un DocumentBuilder:

DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBu ilder();

Luego se crea el documento
Document xml = dBuilder.parse(new File(ARCHIVO));

Y luego se puede acceder a los elementos usando las funciones "usuales" del DOM, getElementsByTagName() o getElementById, por ejemplo

Por lo que, para obtener el valor de valor1, bastaría con:

String valor1 = xml.getElementsByTagName("valor1").item(0).getText Content();


Saludos.
  #3 (permalink)  
Antiguo 14/10/2007, 22:41
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 5 meses
Puntos: 37
Re: Recoger valores de xml en java

Yo lo hice con este codigo, similar al del colega anterior, leo un archivo con extension TXT pero con formato XML:

Cita:
// Recupera ENTORNO: Util para recuperar un entorno especifico del XML, en este caso nos intersa el entorno´
// 4 que contiene
//---------------------------------------
public void validaAccesoEntorno(int idEntorno) throws SQLException, Exception {

//Recuperando datos de XML
System.out.println( "---------------------- ------------------- ----------------" );
System.out.println( "ConexionDataBase.validaAccesoEntorno: Verifica Usuario y pwd vs entorno solicitado" );
System.out.println( "---------------------- ------------------- ----------------" );
// Tomado de: http://www.java-tips.org/java-se-tip...e-in-java.html

//try {
String tableFile = "configuracion.txt";
String ruta = this.getClass().getResource("configuracion.txt").t oString();

StringTokenizer tokenizer = new StringTokenizer(ruta, "/");
tokenizer.nextToken(); // Para saltar el la parte que no deseamos
String newRuta="";

while (tokenizer.hasMoreTokens()) {
newRuta+= tokenizer.nextToken()+"/";
}
//System.out.println("La ruta es:"+newRuta);

//is = this.getClass().getResourceAsStream(tableFile);
//File file = new File("c:\\configuracion.txt");
File file = new File(newRuta);

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();

// Instruccion Parse que muestra directorio duplicado.. debe reemplazarse por inputstream
Document doc = db.parse(file);

doc.getDocumentElement().normalize();
//System.out.println("Root element " + doc.getDocumentElement().getNodeName());
NodeList nodeLst = doc.getElementsByTagName("ENTORNO");

//System.out.println("Total de ENTORNOS:"+nodeLst.getLength());

String id;
String descripcion;
String usuario;
String password;
String controlador;
String url;
String biblioteca;
String registros;
String activado;
ArrayList arrEntornos = new ArrayList(1);
for (int s = 0; s < nodeLst.getLength(); s++) {
//System.out.println("****************************** *******Paso por ENTORNO "+s);

Node nodoEntorno = nodeLst.item(s);

//System.out.println("-----------------------Paso antes de obtener el nodo individual ENTORNO");

if (nodoEntorno.getNodeType() == Node.ELEMENT_NODE) {
Element elementoInterno = (Element) nodoEntorno;

id = "";
descripcion= "";
usuario= "";
password= "";
controlador= "";
url= "";
biblioteca= "";
registros= "";
activado= "";

// Recupera el ACTIVADO de conexion
NodeList listaElementoGENERICO = elementoInterno.getElementsByTagName("ACTIVADO");
Element elementoIndividualGENERICO = (Element) listaElementoGENERICO.item(0);
NodeList nodoGENERICO = elementoIndividualGENERICO.getChildNodes();
if (nodoGENERICO.item(0) != null){
System.out.println("ACTIVADO : " + ((Node) nodoGENERICO.item(0)).getNodeValue());
activado = ((Node) nodoGENERICO.item(0)).getNodeValue();
}
if (s == idEntorno){
// Recupera el USUARIO de conexion

listaElementoGENERICO = elementoInterno.getElementsByTagName("USUARIO");
elementoIndividualGENERICO = (Element) listaElementoGENERICO.item(0);
nodoGENERICO = elementoIndividualGENERICO.getChildNodes();


//usuario
if (nodoGENERICO.item(0) != null){
System.out.println("USUARIO : " + ((Node) nodoGENERICO.item(0)).getNodeValue());

usuario = ((Node) nodoGENERICO.item(0)).getNodeValue();
setUserID(usuario);
}
// Recupera ID de conexion

listaElementoGENERICO = elementoInterno.getElementsByTagName("ID");
elementoIndividualGENERICO = (Element) listaElementoGENERICO.item(0);
nodoGENERICO = elementoIndividualGENERICO.getChildNodes();
if (nodoGENERICO.item(0) != null){
//System.out.println("ID : " + ((Node) nodoGENERICO.item(0)).getNodeValue());
id = ((Node) nodoGENERICO.item(0)).getNodeValue();
}
// Recupera DESCRIPCION de conexion

listaElementoGENERICO = elementoInterno.getElementsByTagName("DESCRIPCION" );
elementoIndividualGENERICO = (Element) listaElementoGENERICO.item(0);
nodoGENERICO = elementoIndividualGENERICO.getChildNodes();
if (nodoGENERICO.item(0) != null){
//System.out.println("DESCRIPCION : " + ((Node) nodoGENERICO.item(0)).getNodeValue());
descripcion = ((Node) nodoGENERICO.item(0)).getNodeValue();
}
// Recupera el PASSWORD de conexion

listaElementoGENERICO = elementoInterno.getElementsByTagName("PASSWORD");
elementoIndividualGENERICO = (Element) listaElementoGENERICO.item(0);
nodoGENERICO = elementoIndividualGENERICO.getChildNodes();
if (nodoGENERICO.item(0) != null){
//System.out.println("PASSWORD : " + ((Node) nodoGENERICO.item(0)).getNodeValue());
password = ((Node) nodoGENERICO.item(0)).getNodeValue();
setPassword(password);
}
// Recupera el CONTROLADOR (Driver) de conexion
listaElementoGENERICO = elementoInterno.getElementsByTagName("CONTROLADOR" );
elementoIndividualGENERICO = (Element) listaElementoGENERICO.item(0);
nodoGENERICO = elementoIndividualGENERICO.getChildNodes();
if (nodoGENERICO.item(0) != null){
//System.out.println("CONTROLADOR : " + ((Node) nodoGENERICO.item(0)).getNodeValue());
controlador = ((Node) nodoGENERICO.item(0)).getNodeValue();
setDriver(controlador);
}
// Recupera REGISTROS de conexion
listaElementoGENERICO = elementoInterno.getElementsByTagName("REGISTROS");
elementoIndividualGENERICO = (Element) listaElementoGENERICO.item(0);
nodoGENERICO = elementoIndividualGENERICO.getChildNodes();
if (nodoGENERICO.item(0) != null){
//System.out.println("REGISTROS : " + ((Node) nodoGENERICO.item(0)).getNodeValue());
registros = ((Node) nodoGENERICO.item(0)).getNodeValue();
setRegistrosMaximo(registros);
}

// Recupera el URL de conexion

NodeList listaElementoURL = elementoInterno.getElementsByTagName("URL");
Element elementoIndividualURL = (Element) listaElementoURL.item(0);
NodeList nodoURL = elementoIndividualURL.getChildNodes();
if (nodoURL.item(0) != null){
//System.out.println("URL : " + ((Node) nodoURL.item(0)).getNodeValue());
url = ((Node) nodoURL.item(0)).getNodeValue();
setURL(url);
}

// Recupera la biblioteca de trabajo
NodeList listaElementoBIBLIOTECA = elementoInterno.getElementsByTagName("BIBLIOTECA") ;
Element elementoIndividualBIBLIOTECA = (Element) listaElementoBIBLIOTECA.item(0);
NodeList nodoBIBLIOTECA = elementoIndividualBIBLIOTECA.getChildNodes();
if (nodoBIBLIOTECA.item(0) != null){
//System.out.println("BIBLIOTECA : " + ((Node) nodoBIBLIOTECA.item(0)).getNodeValue());
biblioteca = ((Node) nodoBIBLIOTECA.item(0)).getNodeValue();
setBiblioteca(biblioteca);
}
break;
}// de activado = 1
}// de if

}// de ciclo de lectura de entornos
// Sube tambien una bandera para indicar que se cargo el arreglo en el request
String entornosCargados = "SI";
//System.out.println( "Antes de redireccionar al servlet:"+getInitParameter("result_page") );
System.out.println( "--------------------------------Fin de ConexionDatabase.recuperaParametro" );

}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:23.