thomas programación programacion orientada objetos manejo libro lenguaje introducción fundamentos desde con codigos cero archivos java xml

programación - manejo de archivos xml en java



El mejor método para analizar varios documentos XML personalizados en Java (6)

Usaría Stax para analizar XML, es rápido y fácil de usar. Lo he estado utilizando en mi último proyecto para analizar archivos XML de hasta 24 MB. Hay una buena introducción en java.net , que le dice todo lo que necesita saber para comenzar.

¿Cuál es el mejor método para analizar documentos XML múltiples, discretos y personalizados con Java?


Básicamente, tienes dos métodos principales de análisis XML en Java:

  • SAX , donde utiliza un controlador para capturar solo lo que desea en su XML y deshacerse del resto
  • DOM , que analiza su archivo todo el tiempo, y le permite tomar todos los elementos de una manera más similar a un árbol.

Otro método de análisis XML muy útil, aunque un poco más reciente que estos, e incluido en el JRE solo desde Java6, es StAX . StAX se concibió como un método medial entre el DOM basado en árbol y el enfoque basado en eventos de SAX. Es bastante similar a SAX en el hecho de que el análisis de documentos muy grandes es fácil, pero en este caso la aplicación "extrae" información del analizador sintáctico, en lugar de analizar los eventos de "empuje" de la aplicación. Puedes encontrar más explicaciones sobre este tema aquí .

Entonces, dependiendo de lo que quiera lograr, puede usar uno de estos enfoques.



Use la biblioteca dom4j

Primero lee el documento

import java.net.URL; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader; public class Foo { public Document parse(URL url) throws DocumentException { SAXReader reader = new SAXReader(); Document document = reader.read(url); return document; } }

Luego usa XPATH para llegar a los valores que necesitas

public void get_author(Document document) { Node node = document.selectSingleNode( "//AppealRequestProcessRequest/author" ); String author = node.getText(); return author; }



A continuación se muestra el código para extraer algún valor de valor usando vtd-xml .

import com.ximpleware.*; public class extractValue{ public static void main(String s[]) throws VTDException, IOException{ VTDGen vg = new VTDGen(); if (!vg.parseFile("input.xml", false)); VTDNav vn = vg.getNav(); AutoPilot ap = new AutoPilot(vn); ap.selectXPath("/aa/bb[name=''k1'']/value"); int i=0; while ((i=ap.evalXPath())!=-1){ System.out.println(" value ===>"+vn.toString(i)); } } }