Подводя итог в два этапа:
- Используйте Tidy для преобразования "свободного HTML" в "хороший XHTML".
- Используйте XML Parser для анализа XHTML как XML с помощью SAX API .
Сначала используйте Tidy (!), Чтобы преобразовать «свободный HTML» в XHTML (или когда вы не можете доверять своему «предполагаемому XHTML»). См. Метод cleanRepair . Это требует больше времени, но работает с большими файлами (!) ... Установите несколько минут в качестве максимального времени выполнения , если оно слишком большое.
Другим вариантом (для работы с большими файлами) является кэширование ваших файлов XHTML после проверки или преобразования в XHTML. См. Метод Tidy repairfile .
С "доверенным XHTML" использовать SAX ... Как использовать SAX с PHP?
Анализ XML с помощью стандартного SAX API , который в PHP реализован с помощью LibXML (см. LibXML2 на xmlsoft.org ) и его интерфейс - синтаксический анализатор PHP , который близок к стандартному API SAX .
Другой способ использовать «SAX LibXML2 » с другим интерфейсом ( PHP-итератор вместо традиционного интерфейса SAX) - это использовать XMLReader, См. это объяснение о "XMLReader use SAX" .
Да, термины «SAX» или «SAX API» не выражены в руководстве по PHP (!!). Смотрите это старое, но хорошее введение .