Поскольку символы <
и >
всегда окружают начальные и конечные теги в XML, это может быть проще с простой машиной состояний. Просто зациклите все символы (в некоторой доступной для записи форме - не хранится в строке), и если вы встретите переворот <
в «режиме замены», начните заменять все символы пробелами, пока не встретите >
. (Обязательно замените начальный <
и закрывающий >
).
Если вы заботитесь о макете, вы можете не заменять символы табуляции и / или символы новой строки. Если все, что вас волнует, это общая длина строки, это, очевидно, не имеет значения.
Редактировать: Если вы хотите поддерживать комментарии, инструкции по обработке и / или разделы CData, вам необходимо явно их распознать; Кроме того, значения атрибутов, к сожалению, также могут включать >
; Все это означает, что полноценная реализация будет более сложной, чем вы хотели.
Для этой задачи идеально подойдет обычный преобразователь; но, к сожалению, их не всегда можно найти в библиотеках классов ...