Сохранение смещений файлов при разборе HTML с помощью DOM?

Я хочу изменить атрибуты <img src=""> в не слишком искаженном HTML (сообщения WordPress). Я знаю, что могу взять простой способ и использовать регулярные выражения, но я боюсь, что люди в синих пушистых костюмах придут ко мне во сне .

Если я использую парсер DOM для чтения HTML и изменения тегов <img> , я боюсь, что не могу восстановить пост точно так, как это было (только с моей модификацией), потому что парсер DOM, вероятно, сделает слишком много очистки и, возможно, удалить важные данные. Парсер SAX, вероятно, не может обрабатывать недопустимый XML, так что это также не сработает.

Итак, есть ли средний путь, где я могу использовать парсер DOM, но тот, который знает, где каждый элемент запускался, поэтому я могу выполнять замену строк или что-то подобное оттуда? Я знаю, что некоторые узлы в дереве DOM не будут существовать в исходном документе ( <b>Some <i>bizarre</b> formatting</i> , вероятно, вызовут это), но означает ли это, что это всегда невозможно? Я вижу, что в PHP 5.3 добавлена функция DOMNode::getLineNo() , но я использую 5.2.x.