Вы бы просто внедрили метод ContentHandler
characters(char[] ch, int start, int length)
и искали бы s1 и заменили на s2.
Конечно, это предполагает, что ваш обработчик контента выводит xml в некоторыепоток.
Из вашего описания действительно вы, вероятно, захотите использовать XMLFilter для изменения потока XML на месте.