He buscado durante un tiempo sobre este tema y he encontrado algunos resultados también, que menciono al final de la publicación. ¿Alguien puede ayudarme a responder con precisión estas tres preguntas para los casos que figuran debajo?Groovy XmlSlurper vs XmlParser
Para que los casos de uso usando XmlSluper tiene más sentido que XMLParser y viceversa (desde el punto de vista de facilidad de uso de API/Sintaxis)?
¿Cuál es más eficiente con la memoria? (parece Slurper)
¿cuál procesa el xml más rápido?
Case a. cuando tengo que leer casi todos los nodos en el xml?
Caso b. cuando tengo que leer solo algunos nodos (como usar la expresión gpath)
Caso c. cuando tengo que actualizar/transformar el xml?
siempre que el documento xml no sea trivial (con nivel de profundidad y tamaño del xml).
Recursos:
http://www.tutkiun.com/2009/10/xmlparser-and-xmlslurper.html estados:
Diferencia entre XMLParser y XMLSlurper:
hay similitudes entre XMLParser y XMLSlurper cuando se utiliza para lectura simple, pero cuando los usamos para Lectura avanzada y cuando procesan documentos XML en otros formatos, existen diferencias entre dos.
XMLParser almacena los resultados intermedios después del análisis de documentos. Pero en por otro lado,
XMLSlurper no almacena los resultados internos después de procesar documentos XML .
Las diferencias reales y fundamentales se ponen de manifiesto al procesar la información analizada . Eso es cuando se procesa con datos directos in situ manipulación y procesamiento en un escenario de transmisión.
http://groovy.dzone.com/news/john-wilson-groovy-and-xml
El documento maravilloso (XmlParser, XmlSlurper) y del sitio del maravilloso les explica bien (here y here), pero no hace un gran trabajo en la explicación de la pregunta antes mencionada.
Explicación impresionante de actualización en cuanto a slurper, gracias. Esto resolvió mi problema cuando intentaba eliminar nodos recursivamente cuando estaba "vacío" en una tragamonedas, lo que por supuesto no funcionaría. – sandos