Inicialmente, el lenguaje XML solo estaba destinado a ser un reemplazo del lenguaje HTML. Sin embargo, a medida que el lenguaje continúa desarrollándose y mejorando, la gente descubre cada vez más sus ventajas: como un lenguaje de marcado extensible y una sintaxis estricta, la posibilidad de utilizarlo. El marcado significativo, la separación del almacenamiento y la presentación del contenido y otras ventajas hicieron que el lenguaje fuera brillante desde el día en que nació. El lenguaje XML ha entrado en un período de rápido desarrollo después de convertirse en un estándar del W3C. Por supuesto, su propia serie de ventajas y ventajas también han hecho que los principales fabricantes de tecnología lo favorezcan rápidamente como tecnología de desarrollo en la industria del software. En respuesta, han surgido una variedad de herramientas para admitir XML. Este artículo presentará varias tecnologías principales para procesar XML en Java desde esta perspectiva.
¿Qué excelentes bibliotecas de clases y herramientas tiene Java para facilitar a los programadores el procesamiento de XML?
Una introducción a los tres métodos de análisis XML: el famoso DOM
No es exagerado decir que es famoso. DOM es la API estándar del W3C para procesar XML. Es la base de muchos otros estándares relacionados con el procesamiento de XML, no solo Java, sino también otros lenguajes como Javascript, PHP,. MS.NET, etc. Este estándar se ha convertido en el método de procesamiento XML más utilizado. Por supuesto, para proporcionar funciones cada vez más potentes, Java tiene muchas clases de herramientas de extensión directa para DOM, como JDOM, DOM4J, etc., que son familiares para muchos programadores de Java. Básicamente son extensiones de las funciones de la interfaz DOM y las conservan. Hay mucho DOM Debido a las características de la API, muchos programadores DOM originales han dominado el uso de los otros dos sin ningún obstáculo. El método intuitivo y fácil de operar lo hace muy apreciado por la mayoría de los programadores de Java.
SAX ecológico y respetuoso con el medio ambiente
La aparición de SAX tiene sus necesidades especiales. ¿Por qué se dice que es ecológico y respetuoso con el medio ambiente? Esto se debe a que SAX utiliza la menor cantidad de recursos del sistema y el método de análisis más rápido para brindar soporte para el procesamiento XML. Pero los engorrosos métodos de búsqueda que lo acompañan también traen muchos problemas a los programadores, y a menudo causan dolores de cabeza. Al mismo tiempo, su soporte para la función de consulta XPath hace que la gente lo ame y lo odie.
El oscuro digestor: JavaBeanización de XML
Digester es un proyecto de código abierto de la Fundación Apache. La comprensión del autor proviene de la investigación sobre el marco Struts. ¿Hay muchos programadores que quieran comprender el diseño de los principales marcos de código abierto o incluso escribir un marco poderoso ellos mismos? Se encontrará con un problema de este tipo: ¿Qué tecnología se utiliza en la parte inferior del marco para analizar estos diversos archivos de configuración del marco marcados con lenguaje XML? El análisis DOM requiere mucho tiempo, el análisis SAX es demasiado engorroso y la sobrecarga del sistema de cada análisis será demasiado alta. Por lo tanto, todos pensaron que deberían usarse JavaBeans correspondientes a la estructura XML para cargar esta información, y nació Digester. Su aparición brinda una interfaz de operación conveniente para la necesidad de convertir XML en objetos JavaBean, de modo que necesidades más similares puedan obtener una solución más perfecta y los programadores ya no necesiten implementar procedimientos de análisis tan engorrosos por sí mismos. Al mismo tiempo, SUN también lanzó la clase de herramienta de conversión XML y JavaBean JAXB, y los lectores interesados pueden aprender sobre ella por su cuenta.
Veamos un ejemplo de XML de análisis dom de Java:
importar java.io.*; importar org.w3c.dom.*; importar org.xml.sax.SAXException; importar javax.xml.parsers.*; clase pública Xml {public static void main(String[] args) { DocumentBuilderFactory fábrica = DocumentBuilderFactory.newInstance(); prueba { Constructor de DocumentBuilder = factory.newDocumentBuilder() Documento doc =; builder.parse(new File("E://work//test//xml1.xml")); NodeList nl = doc.getElementsByTagName("libro"); ); i++) { System.out.println(nl.item(i).getAttributes().item(0)); System.out.println(doc.getElementsByTagName("title").item(i) .getFirstChild().getNodeValue()); System.out.println(doc.getElementsByTagName("title").item(i) .getAttributes ().elemento(0)); System.out.println(doc.getElementsByTagName("autor").item(i) .getFirstChild().getNodeValue()); System.out.println(doc.getElementsByTagName("año").item(i) .getFirstChild ().getNodeValue()); System.out.println(doc.getElementsByTagName("precio").item(i) .getFirstChild().getNodeValue()); System.out.println() } } catch (ParserConfigurationException e) { e.printStackTrace(); } captura (SAXException e) { e.printStackTrace() } captura (IOException e) { e.printStackTrace();
XML:
<librería> <libro categoría="COCINA"> <título lang="es">Italiano cotidiano</título> <autor>Giada De Laurentiis</autor> <año>2005</año> <precio>30,00</precio > </libro> <libro categoría="NIÑOS"> <título lang="es">Harry Potter</título> <autor>J K. Rowling</autor> <año>2005</año> <precio>29,99 </precio> </libro> <libro categoría="WEB"> <título lang="es">Aprendizaje XML</título> <autor>Erik T. Ray</autor> <año>2003</año> <precio>39,95< /precio> </libro> </librería>
resultado:
categoría="COCINAR"Todos los días Italianlang="es"Giada De Laurentiis200530.00category="NIÑOS"Harry Potterlang="es"J K. Rowling200529.99category="WEB"Aprendizaje XMLlang="es"Erik T. Ray200339.95