Я знаю. Это недействительный XML.libxml проанализировать все содержимое, если имеется несколько корневых узлов
К сожалению, это часть работы, связанной с ошибкой в исходном коде php, которая использует libxml.
Функция Php loadHTML перезаписывает предупреждения и ошибки ошибок, поэтому, если вы передадите эти параметры, они никогда не попадают в libxml.
Нагрузка PhpXML не сделать ту же ошибку. Все флаги работают так, как ожидалось. Поэтому я изучаю использование loadXML в качестве замены на данный момент. К сожалению loadXML не подходит для загрузки, скажем, фрагментов шаблонов или виджетов, потому что он остановит разбор после одного корневого узла. Так что-то вроде ....
<!--My title snippet -->
<h1>${{ title }}</h1>
<h4>${{ subtitle }}</h4>
будет частично загружен loadXML. Есть ли какой-либо флажок опции, чтобы заставить парсер libxml продолжать работу?Или мне придется потребовать, чтобы все фрагменты были обернуты в корневой узел?
Примечание
Я исследовал другие способы обойти ошибку. Например, с помощью LIBXML_USE_INTERNAL_ERRORS (true) или путем улавливания и очистки предупреждений с выходным буфером. Оба работают, но ни один из них не является удовлетворительным, поскольку они пишут предупреждения и ошибки в память, которые я не хочу.
В чем проблема с 'libxml_use_internal_errors'? Предупреждения и ошибки можно очистить с помощью 'libxml_clear_errors'. – nwellnhof