Busqué un tiempo sobre este tema y también encontré algunos resultados, que menciono al final de la publicación. ¿Puede alguien ayudarme a responder con precisión estas tres preguntas para los casos que se enumeran a continuación?
¿Para qué casos de uso el uso de XmlSluper tiene más sentido que XmlParser y viceversa (desde el punto de vista, la facilidad de uso de API / Syntax)?
¿Cuál es más eficiente en memoria? (parece Slurper)
¿Cuál procesa el xml más rápido?
Caso a. cuando tengo que leer casi todos los nodos en el xml?
Caso b. cuando tengo que leer solo unos pocos 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 dice:
Diferencia entre XMLParser y XMLSlurper:
Existen similitudes entre XMLParser y XMLSlurper cuando se usan para lectura simple, pero cuando los usamos para lectura avanzada y cuando procesamos documentos XML en otros formatos, existen diferencias entre dos.
XMLParser almacena resultados intermedios después de analizar los documentos. Pero en la otra mano,
XMLSlurper no almacena resultados internos después de procesar documentos XML.
Las diferencias reales y fundamentales se hacen evidentes al procesar la información analizada. Eso es cuando se procesa con manipulación y procesamiento de datos in situ directo en un escenario de transmisión.
http://groovy.dzone.com/news/john-wilson-groovy-and-xml
El documento groovy ( XmlParser , XmlSlurper ) y el sitio de groovy los explica bien ( aquí y aquí ) pero no hace un gran trabajo al explicar la pregunta antes mencionada.
fuente
Te daré respuestas claras:
* XML Parser es más rápido que XML Slurper.
* XML Slurper consume menos memoria que XML Parser.
* XML Parser puede analizar y actualizar el XML simultáneamente.
* Para XML Slurper, debe marcar el código XML después de cada actualización que realice.
* Cuando desee utilizar Path Expressions XML Slurper sería mejor que el analizador.
* Para leer casi todos los nodos, el analizador XML estaría bien
Espero eso ayude
fuente