Dime por favor ¿es posible romper el proceso de análisis? Es decir. salga de este bucle sin llegar al final del documento y al evento correspondiente "endDocument"?Java. Analizador de Sax. ¿Cómo romper el análisis sintáctico manualmente?
Respuesta
lanzar una excepción en el controlador y la captura en el bloque de código donde se inició el análisis sintáctico:
try {
...
xmlReader.parse();
} catch (SAXException e) {
if (e.Cause instanceof BreakParsingException) {
// we have broken the parsing process
....
}
}
Y en su DocumentHandler:
public void startElement(String namespaceURI,
String localName,
String qName,
Attributes atts)
throws SAXException {
// ...
throw new SAXException(new BreakParsingException());
}
Por cierto: 2 años después estoy empezando a Creo que es bastante desafortunado que tengamos que usar una excepción para controlar el flujo. Romper el proceso de análisis puede ser perfectamente válido en escenarios sin error ... Si alguna vez alguien encuentra una mejor solución, ¡me encantaría leerla! – chiccodoro
Lanza una subclase de [SAXParseException] (http://www.saxproject.org/apidoc/org/xml/sax/SAXParseException.html) y obtendrás una devolución de llamada en [ErrorHandler] (http: // www. saxproject.org/apidoc/org/xml/sax/ErrorHandler.html). –
Tienes que lanzar un SAXException. Para distinguirlo de los errores comunes, lo subclase con mi propia clase Excepción
La solución simple sería usar el análisis StAX, en lugar de SAX. Mientras que SAX tiene análisis de inserción - los Parsers envían los eventos al Handler, StAX es un análisis de extracción, los eventos se nos brindan a través de XMLEventReader, que se puede usar de manera similar a un iterador. Por lo tanto, es más fácil implementar el salto condicional para salir del análisis sintáctico.
- 1. Supervisión del progreso del analizador Java SAX
- 2. analizador SAX vs XMLPull analizador
- 3. análisis XML - elementtree vs SAX y DOM
- 4. Cómo analizar XML utilizando el analizador SAX
- 5. análisis sintáctico fecha Fuzzy con Java
- 6. Analizador ligero XML C++ SAX
- 7. Analizando html con el analizador SAX
- 8. análisis sintáctico argumentos posicionales
- 9. JAVA SAX parser llamadas divididas a caracteres()
- 10. Diferencia entre el analizador XML SAX, el analizador de arrastre y el analizador DOM en Android
- 11. Anorm de análisis sintáctico flotador valora
- 12. Java SAX plantea UnknownHostException
- 13. Análisis sintáctico en Objective-C?
- 14. Ajuste de la codificación para el analizador SAX en Python
- 15. Haskell - Analizador sintáctico de descenso recursivo
- 16. argumentos de análisis sintáctico después getopts
- 17. Java SAX Parsing
- 18. En busca del analizador sintáctico Delivered NMEA
- 19. cadenas de análisis sintáctico en pitón
- 20. Android: análisis DOM vs SAX vs XMLPullParser?
- 21. números de análisis sintáctico con múltiples dígitos en Prolog
- 22. simple análisis sintáctico XML XML en lista
- 23. ¿por qué el análisis sax es más rápido que el análisis dom? y ¿cómo funciona el stax?
- 24. error al obtener Prelude.read: ningún análisis sintáctico
- 25. Java Error de compilación: "alcanzado el final del archivo, mientras que el análisis sintáctico}"
- 26. Bison - parámetro adicional a un analizador sintáctico y puro
- 27. ¿Cuál es el BNF para una expresión regular (para escribir un analizador sintáctico completo o parcial)
- 28. Cómo eliminar #text de mi análisis de nodo en Java dom xml sintáctico
- 29. ¿Cómo puedo obtener el texto entre las etiquetas usando el analizador de Python SAX?
- 30. SAX análisis - manera eficaz de obtener los nodos de texto
Igual que esta pregunta http://stackoverflow.com/questions/1345293/how-to-stop-parsing-xml-document-with-sax-at-any-time – Brian