Я хочу изменить атрибуты <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.