Olá
Se você precisa ler e escrever XML, então pode riscar SAX das opções.
A dica do CV é perfeita sob o ponto de vista de fazer as coisas funcionarem do modo mais feijão com arroz possível (o que geralmente é muito bom). Até porque, há um monte de textos na web com exemplos de uso de DOM, inclusive encriptando XML como os links abaixo:
Managing XML Encryption with Java
Mas se você quiser fazer as coisas pensando em aprender soluções mais modernas use StAX.
Abaixo uma comparação entre os 3 tipos mais comuns de APIs para XML (falta o TrAX)
DOM: API tipo árvore na memória, muito fácil de usar, uso de CPU e memória muito ruim em casos grandes, lê XML, escreve XML, trata XPATH, serve para CRUD
SAX: API tipo Pull, streaming, meio difícil de usar, bom uso de CPU e memória, lê XML, não escreve XML, lê só para a frente, não trata XPATH, não serve para CRUD
StAX: API tipo Pull, streaming, muito fácil de usar, bom uso de CPU e memória, lê XML, escreve XML, lê só para a frente, não trata XPATH, não serve para CRUD e é o recomendado para usar com Java a partir do Java 6
Se eu fosse você, partiria logo para StAX, Streaming API for XML, porque assim aprenderia algo com serventia mais genérica. O StAX agora vem com o Java 6.
Links:
http://java.sun.com/javase/6/docs/technotes/guides/xml/index.html
http://javaboutique.internet.com/tutorials/stax/
Se quiser melhor desempenho leia http://netzooid.com/blog/2007/08/28/quick-intro-to-xml-performance/ e use http://sxc.codehaus.org/ (created optimized parsers and writers for XML) ou http://woodstox.codehaus.org/ (StAX ou SAX).
Antes que alguém responda, se você vai serializar objetos em XML, então olhe o XStream
Nesta sua solução tome cuidado com as questões de encoding que podem estar envolvidas.
[]s
Luca