![]() |
|
||||||
|
|||||||
|
|
|
|
XML DOCUMENT OBJECT MODEL Y JAVA Como ya hemos podido suponer, el empleo de tecnología XML, al ser un estándar internacional y público, no nos ata a una plataforma o sistema de desarrollo concreto. Lo mismo se puede usar Perl bajo UNIX para generar documentos XML a partir de una base de datos, como usar Python en Windows NT para servir documentos HTML4 a navegadores web a partir de un documento XML. Dicho esto, hay que decir que JAVA se posiciona como una opción interesante a la hora de desarrollar aplicaciones usando XML. Por ejemplo, a partir de fuentes de datos en XML, podemos escribir un servlet que analice sintácticamente el XML, y que genere un árbol DOM (Document Object Model). Una vez generado el árbol DOM, podemos ir extrayendo la información que contiene e ir generando un documento HTML de acuerdo con ciertas reglas de formato, de modo que pueda ser visualizado por un navegador web. Vamos a suponer que nuestro servlet carga ese fichero XML en un objeto string de Java, que nos vamos a disponer a analizar. Lo primero que debemos hacer es crear un analizador sintáctico XML. Usamos el objeto com.ibm.xml.Parser para ello. Parser parser = new Parser("xslparse.err"); El fichero "xslparse.err" será el registro de cualquier error que ocurra mientras procesamos el documento XML, que debe ser convertido a un InputStream. ByteArrayInputStream bais = new ByteArrayInputStream(xmlString.getBytes()); Ahora le decimos al parser que ignore las declaraciones de tipo de documento, los comentarios, etc. parser.setWarningNoXMLDecl(false); Analizamos el documento, y cerramos el InputStream. doc = parser.readStream; Ahora contenemos el árbol DOM en el objeto "doc", y lo que tenemos que hacer es movernos por el árbol DOM e ir sacando los datos que contiene. Vamos a ver los métodos que tenemos para navegar el DOM (definidos en org.w3c.dom.Node) getDocumentElement() Devuelve el elemento raiz getFirstChild() Devuelve el nodo que es el primer "hijo" de este nodo. getNextSibling() Devuelve el nodo que es el siguiente "hermano" de este nodo. getLastChild() Devuelve el nodo que es el último "hijo" de este nodo. getPreviousSibling() Devuelve el nodo que es el último "hermano" de este nodo. getAttribute(java.lang.String attrName) Devuelve un objeto string que representa el valor de un atributo. Existen más métodos para manipular el DOM. La especificación "DOM Level 1" (http://www.w3.org/TR/REC-DOM-Level-1) aporta más información sobre métodos del DOM.
|
Alojado en: Recomienda esta pagina a un amigo Servicios Gratuitos
Articulos relacionados
Enlaces recomendados |
|
Descargas
de manuales¦ Ejemplos
de código ¦ Artículos
mas visitados ¦ Envía
tu articulo ¦ Foros ¦ |
||
|
© 2001-Hasta hoy Pedro Rufo Martín contactar |
||