Eu acho que você não deve considerar nenhuma implementação específica do analisador. A API Java para processamento XML permite usar qualquer implementação de analisador em conformidade de maneira padrão. O código deve ser muito mais portátil e, quando você perceber que um analisador específico ficou muito antigo, poderá substituí-lo por outro sem alterar uma linha do seu código (se você fizer isso corretamente).
Basicamente, existem três maneiras de lidar com XML de maneira padrão:
- SAX Esta é a API mais simples. Você lê o XML definindo uma classe Handler que recebe os dados dentro dos elementos / atributos quando o XML é processado de maneira serial. É mais rápido e mais simples se você planeja apenas ler alguns atributos / elementos e / ou escrever alguns valores de volta (seu caso).
- DOM Esse método cria uma árvore de objetos que permite modificá-lo / acessá-lo aleatoriamente, para melhor manipulação e manipulação complexas de XML.
- StAX Está no meio do caminho entre SAX e DOM. Você acabou de escrever um código para extrair os dados do analisador de seu interesse quando são processados.
Esqueça as APIs proprietárias, como JDOM ou Apache (por exemplo, Apache Xerces XMLSerializer ), porque o vinculará a uma implementação específica que pode evoluir no tempo ou perder a compatibilidade com versões anteriores, o que fará com que você altere seu código no futuro quando desejar atualizar para uma nova versão do JDOM ou qualquer analisador usado. Se você aderir à API padrão Java (usando fábricas e interfaces), seu código será muito mais modular e sustentável.
Não há necessidade de dizer que todos (não verifiquei todos, mas tenho quase certeza) dos analisadores propostos estão em conformidade com uma implementação JAXP, para que tecnicamente você possa usar tudo, não importa qual.