Creo que no deberías considerar ninguna implementación específica del analizador. Java API for XML Processing le permite usar cualquier implementación de analizador conforme de manera estándar. El código debería ser mucho más portátil, y cuando te das cuenta de que un analizador específico ha envejecido demasiado, puedes reemplazarlo por otro sin cambiar una línea de tu código (si lo haces correctamente).
Básicamente, hay tres formas de manejar XML de manera estándar:
- SAX Esta es la API más simple. Usted lee el XML definiendo una clase Handler que recibe los datos dentro de los elementos / atributos cuando el XML se procesa en serie. Es más rápido y más simple si solo planea leer algunos atributos / elementos y / o escribir algunos valores (su caso).
- DOM Este método crea un árbol de objetos que le permite modificarlo / accederlo aleatoriamente, por lo que es mejor para la manipulación y manipulación de XML complejo.
- StAX Esto está en el medio de la ruta entre SAX y DOM. Simplemente escriba código para extraer los datos del analizador que le interesa cuando se procesa.
Olvídate de las API propietarias como JDOM o Apache (es decir, Apache Xerces XMLSerializer ) porque te vinculará a una implementación específica que puede evolucionar en el tiempo o perder la compatibilidad con versiones anteriores, lo que te hará cambiar tu código en el futuro cuando quieras actualizar a una nueva versión de JDOM o cualquier analizador que use. Si se apega a la API estándar de Java (usando fábricas e interfaces) su código será mucho más modular y fácil de mantener.
No es necesario decir que todos los analizadores propuestos (no los he marcado todos, pero estoy casi seguro) cumplen con una implementación de JAXP, por lo que técnicamente puedes usar todo, sin importar cuál.