Parsear XML en Java

13th Noviembre 2009

Para los que quieran parsear un xml en java les facilito el codigo necesario, como observacion el xml no sera un archivo guardado sino que sera recibido como un String.

1. imports necesarios (Fundamental)

import java.io.ByteArrayInputStream;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

2. Funcion que recibe un String y lo convierte en un objeto Document

public Document string2DOM(String s){

Document tmpX=null;
DocumentBuilder builder = null;

try{
builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
}catch(javax.xml.parsers.ParserConfigurationException error){
int coderror=10;
String msgerror=”Error crando factory String2DOM “+error.getMessage();
return null;
}
try{

tmpX=(Document)builder.parse(new ByteArrayInputStream(s.getBytes()));

}catch(org.xml.sax.SAXException error){
int coderror=10;
String msgerror=”Error parseo SAX String2DOM “+error.getMessage();
return null;
}catch(IOException error){
int coderror=10;
String msgerror=”Error generando Bytes String2DOM “+error.getMessage();
return null;
}
return tmpX;
}

3. Funcion que recibe el un nodo y devuelve el contenido de algun tag interno especificando el tagName

private  String getTextValue(Element ele, String tagName) {
String textVal = null;
NodeList nl = ele.getElementsByTagName(tagName);
if(nl != null && nl.getLength() > 0) {
Element el = (Element)nl.item(0);
textVal = el.getFirstChild().getNodeValue();
}

return textVal;
}

Ejemplo:

<persona>

<nombre>Ana</nombre>

</persona>

docEle->es el objeto tag persona, piensa en el objeto tag como lo manejas en javascript

para sacar el nombre escribirias: getTextValue(docEle,”nombre”);

4. Como usar todo junto

String xml=”<persona><nombre>Ana</nombre><telefono>2673353</telefono><telefono>2234456</telefono></persona>”;

Document doc=string2DOM(xml);
Element docEle=doc.getDocumentElement();

//para obtener el nombre

String nombre=getTextValue(docEle,”nombre”);

//para obtener telefonos

NodeList nl = docEle.getElementsByTagName(”telefono”);
if(nl != null && nl.getLength() > 0) {
for(int i = 0 ; i < nl.getLength();i++) {

//get the employee element
Element el = (Element)nl.item(i);
String telefono=el.getFirstChild().getNodeValue();

nl.add(telefono);

}
}

El modo en que se maneja el xml es muy parecido a que si lo hicieras en javascript. Espero les sirva

Tweetea desde tu Celular!!!

24th Julio 2009

Siii, ya es posible actualizar tu estado en el Microblog Twitter a través de tu celular aquí en Ecuador. Es muy sencillo, para hacerlo:twitter y cel

  1. Ingresa con tu usuario y contraseña a www.twitter.com
  2. En otra ventana, o en otra pestaña del navegador, ingresa a www.twittermail.com
  3. Escribe tu nombre de usuario y contraseña de Twitter
  4. Te será dada una dirección de correo, por ejemplo abc123@twittermail.com, copiala en tu celular.
  5. Cuando quieras tweetear algo, desde tu celular, crea un nuevo mensaje de texto, coloca en él tu dirección @twittermail.com, un espacio en blanco y a continuación, el mensaje que quieras poner.
  6. Envíalo al 123 y listo!

<!– @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } –>

Es muy sencillo comenzar a tweetear desde tu celular, además vuelve más chevere tu experiencia como usuario de Twitter, ya que te permite escribir lo que estás haciendo en el momento exacto en el que estás realizando la acción; el costo es el mismo que tiene un SMS normal.

Los inconvenientes son que actualmente solo está disponible para usuarios de Porta, y que sólo puedes enviar actualizaciones, mas no recibirlas.

El grupo de investigación TAWS agradece por el apoyo brindado por el Decano de la FIEC, Ing. Sergio Flores, al asignarnos nuestras oficinas!

Gracias a esto, nos continuaremos desarrollando como Grupo de Investigación de la FIEC y aportando a la comunidad politécnica con charlas, talleres y software desarrollado para la comunidad politécnica.

Gracias Ing. Flores!

Hypertable

27th Enero 2009

Hypertable es un Sistema Gestor de Bases de Datos de tipo “open source”, desarrollado por la compañía Zvents[1]. Es un sistema de almacenamiento de datos distribuido y de alto desempeño,  ideal para aplicaciones que necesitan manejar datos que evolucionan rápidamente y diseñado para soportar una gran demanda de datos en tiempo real, y fue modelado basándose en el diseño de Google’s BigTable.

Hypertable surgió para facilitar el procesamiento de grandes cantidades de datos, tras la gran explosión de información que acompañó el inicio de la Web 2.0, y se caracteriza por ser un gestor de bases de datos distribuido, escalable, no relacional y que no soporta transacciones.

Este gestor de bases de datos ha sido desarrollado en C++, pero inicialmente se pensó hacerlo en Java, idea que fue rechazada debido al gran consumo de memoria de dicho lenguaje de programación, y a la intensidad del flujo de datos de una aplicación de la naturaleza de Hypertable[2]

La principal diferencia entre Hypertabe y los gestores de bases de datos relacionales es que, en los gestores de bases de datos relacionales, se tienen muchas tablas muy pequeñas, y se las une con la operación de join, pero ni siquiera todos los join y todas las tablas juntas suelen acercarnos al verdadero volumen de datos generados por aplicaciones web 2.0, además de que el excesivo uso de operaciones join vuelve más “lenta” nuestra aplicación web; entonces la idea de Hypertable es que guardemos toda esta gran cantidad de información en una sola tabla (eliminando la necesidad de las operaciones join) y colocarla en un Sistema de Archivos Distribuido, para que las operaciones realizadas sobre la tabla puedan ser procesadas de forma simultánea por todos los sistemas conectados a la red.

La dirección web oficial del proyecto Hypertable es: http://www.hypertable.org/. Allí podrás encontrar información más detallada (en inglés), y descargar de forma gratuita la aplicación en su última versión (actualmente la 0.9.0.12 Alpha) Hypertable se distribuye bajo los términos de la Licencia GPL 2.0.

Mientras se construye un sitio web, es necesario identificarlo con palabras claves frecuentemente utilizados, que permiten a los usuarios realizar búsquedas por esas palabras; pero, que significa “frecuente”?

Para entender mejor el uso optimizado de palabras claves, es necesario poseer una metodología para medir la frecuencia.  (Para verificar la frecuencia de una palabra clave, es posible por Live-Keyword-Analysis.com.)

Existen formas más complejas de calcular la densidad de una palabra clave, tomando en cuenta los componentes HTML en la página (Meta tags como en: title, keywords, alt text, description y comments). Cuando se utiiliza esta medida, no sólo consiste en contar las palabras, también, cuenta las palabras en las secciones de los metas.

Enlaces de referencia:


El Viernes 24 de Octubre, en el Aula Magna de la ESPOL, se llevó a cabo la Ceremonia de Premiación y Entrega de Menciones Honoríficas, donde MsC. Carmen Vaca,  Coordinadora del Grupo TAWS, recibió una Mención Honorífca como mejor Profesora de la FIEC.

Fuera del Aula Magna junto a nuestra coordinadora.

Tags: ,

TAWS iGoogle Theme

29th Octubre 2008

Si usas iGoogle y quieres tener un diseño que te identifique con la ESPOL, intenta lo siguiente:

  1. Accede a tu cuenta de iGoogle
  2. Coloca en la barra de direcciones el siguiente URL:

http://www.google.com/ig?skin=http://espoltheme.googlecode.com/svn/trunk/Espol50Theme.xml

y verás como tu diseño de iGoogle cambia!.

Escríbenos tus sugerencias.

Microsoft Silverlight

24th Octubre 2008

Microsoft Silverlight

(http://silverlight.net/)

Microsoft Silverlight is a programmable web browser plugin that enables features such as animation, vector graphics and audio-video playback that characterize rich Internet applications. Silverlight competes with technologies such as Adobe Flash, SVG, Adobe Flex, Adobe Shockwave, JavaFX, Curl and the JavaScript programming language.[1] Version 2.0, released October 2008, brings additional interactivity features and support for .NET languages and development tools.

Silverlight was developed under the codename Windows Presentation Foundation/Everywhere (WPF/E). It is compatible with multiple web browser products used on Microsoft Windows and Mac OS X operating systems. Mobile devices, starting with Windows Mobile 6 and Symbian (Series 60) phones, will also be supported.[2] A third-party free software implementation named Moonlight is under development to bring compatible functionality to GNU/Linux.

(http://en.wikipedia.org/wiki/Silverlight)

Schedule Viewer

16th Octubre 2008

scheduler-logo

Schedule Viewer es una adecuación del proyecto final de Desarrollo de Aplicaciones Web, materia dictada en la FIEC y coordinada por MsC. Carmen Vaca.

Próximamente las nuevas versiones del Scheduler

Revísalo en: Schedule Viewer