Во-первых, я предполагаю, что вы говорите об изменении некоторых атрибутов для группы элементов. При этом вы не хотите читать весь документ сразу (анализ на основе DOM), вы действительно хотите иметь дело с элементами такими, какими вы их видите (анализ на основе SAX). Я не рубиновый человек, но быстрый поиск обнаружил хорошую информацию о разборе SAX в Ruby, в частности этот пост http://lucaguidi.com/2008/01/30/ruby-xml-parsing-with-sax.
Если у вас есть только несколько атрибутов на небольшом количестве элементов, я бы порекомендовал другой подход. Во-первых, если вы можете указать элементы, которые вы хотите изменить, как регулярное выражение, может быть проще использовать инструмент командной строки, такой как sed, для редактирования файлов.