Ca dépend si tu veux que ton fichier soit réellement modifié sur disque à chaque modif' ou pas. Le système de fichiers stocke le XML tel quel ; réfléchis 2 secondes, et tu verras qu'il n'y a pas d'autre possibilité que de réécrire le fichier complet à chaque fois.
Mais si tu as des problèmes de performance, c'est peut-être parce que tu n'utilises XML correctement. Pour quoi (en 2 mots) utilises-tu XML ? Pourquoi (en 1 seul mot) as-tu besoin de réécrire très souvent ton fichier ? Est-ce vraiment nécessaire ?
Rappel : Le format XML est un format d'échange d'informations. Donc pas un format de stockage d'informations. Si tu as vraiment besoin de stocker des informations sur disque, utilise un autre format plus approprié (par exemple un format binaire, en rendant tes objets sérialisables).
Et le disque, c'est très lent (en gros un million de fois plus lent que la mémoire). Alors n'écris pas ton fichier toutes les 2 secondes : ne le fabrique que lorsque c'est absoument nécessaire. Travaille plutôt en mémoire sur, au pire, un arbre DOM ou, mieux, tes propres objets.