Análisis de archivos XML grandes utilizando el analizador SAX (salte algunas líneas / etiquetas)

Actualmente estoy desarrollando una aplicación que recupera datos de Internet usando SAX. Lo usé antes para analizar archivos XML simples como Google Weather API. Sin embargo, los sitios web que estoy interesado en tomar el análisis al siguiente nivel. La página es enorme y parece desordenada. Sólo necesito recuperar algunas líneas específicas; El resto no es útil para mí.
¿Es posible omitir esas líneas / etiquetas inútiles, o tengo que ir paso a paso?

Me gustan los comunes-digestor. Le permite especificar reglas contra determinadas etiquetas. La regla se ejecuta sólo cuando se encuentra la etiqueta.

Digester está construido sobre sax y por lo tanto tiene todas las características de sax más la especificidad que se requiere para analizar selectivamente etiquetas específicas. También utiliza una pila que se empuja con nuevos elementos como y cuando se encuentra la etiqueta correspondiente y se dispara cuando el elemento termina.

Lo uso para analizar todos mis archivos de configuración.

Consulta el digestor en http://commons.apache.org/digester/

Sí, puedes hacerlo, simplemente ignora las etiquetas que no te interesan. Pero ten en cuenta que todo el documento tendrá que ser analizado para esto (DefaultHandler impl)

public startElement(String uri, String localName, String qName, Attributes attributes) { if(localName.equals("myInterestingTag") { // do your thing.... } } public void endElement(String uri, String localName, String qName) { if(localName.equals("myInterestingTag") { // do your thing.... } } public void characters(char[] ch, int start, int length) { // if parsing myinteresting tag... do some stuff. } 

Sí, puedes saltar. Simplemente defina las etiquetas que desee y sólo obtendrá esos valores de etiqueta.

Usted puede intentar utilizar XPath que utilizará SAX detrás de la escena para analizar su xml. La desventaja aquí es que XML se analizará en cada llamada de método de evaluación Xpath.

Si desea leer las etiquetas específicas, entonces el analizador de DOM es mucho más rápido que el parser SAX. El analizador de SAX es útil si desea analizar grandes archivos XML.

Puede probar una combinación de TagSoup para crear un documento XML analizable y XPath para obtener las partes interesantes.

Vea mi respuesta a una pregunta similar para una estrategia de uso de SAX para omitir / ignorar etiquetas:

Saltar nodos con saxo

Implica el cambio de ContentHandlers en XMLReader. Cuando lee un portado del documento XML que desea omitir, simplemente cambie en un ContentHandler que no haga nada con los eventos. Cuando se alcanza el final de la sección a ignorar, pasa el control de nuevo al controlador de contenido que estaba utilizando para procesar el contenido XML.

  • Cambiar android: Theme.Dialog para encender el cuadro de diálogo de AppCompat
  • ¿El complemento ADT crea automáticamente un archivo de construcción de hormigas?
  • Tenemos que limpiar todo el proyecto de Android en Eclipse cada vez que se edita un archivo XML
  • Generar estilo de xml en intellij (/ android studio)
  • ViewPagers en un ListView mostrando elementos de la lista en blanco
  • Eclipse no muestra errores de XML
  • ¿Cómo agregar una vista personalizada dentro de otra vista personalizada?
  • Dynamic Center Aligned ViewPager
  • cómo enviar los datos xml al servidor en android
  • Cómo obtener el ancho en píxeles de vista con android: layout_width = "wrap_content"?
  • Problemas con la tarjeta SD de Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.