Intereting Posts

DOMDocument: игнорировать повторяющиеся идентификаторы элементов

Я помещаю некоторое содержимое страницы (которое было запущено через Tidy, но не должно быть, если это источник проблем) в DOMDocument используя DOMDocument::loadHTML .

Это приводит к различным ошибкам:

ID x, уже определенный в Entity, строка X

Есть ли способ заставить DOMDocument (или Tidy) игнорировать или DOMDocument повторяющиеся идентификаторы элементов, поэтому он фактически создаст DOMDocument ?

Благодарю. 🙂

Related of "DOMDocument: игнорировать повторяющиеся идентификаторы элементов"

Быстрый поиск по этому вопросу показывает этот (неверный) отчет об ошибке:

http://bugs.php.net/bug.php?id=46136

В последнем ответе говорится следующее:

Вы используете правила HTML 4 для загрузки документа XHTML. Либо используйте метод load () для анализа как XML или функцию libxml_use_internal_errors (), чтобы игнорировать предупреждения.

Я не могу быть уверен, что вы столкнулись с этой проблемой по тем же причинам, так как вы не указали ссылку на загружаемую HTML-страницу. В любом случае использование libxml_use_internal_errors() должно по крайней мере подавлять ошибку.

ID в документах HTML, как правило, уникальны , поэтому лучшим решением по- прежнему будет проверка вашего документа, если это вообще возможно.

По определению идентификаторы уникальны. Если это не так, вам следует вместо этого использовать классы (и имена, где они применяются).
Я сомневаюсь, что вы можете заставить инструменты XML игнорировать повторяющиеся идентификаторы, что заставит их обрабатывать недопустимый XML-документ.

Используйте Исключения для обработки повторяющихся идентификаторов и переименуйте второй идентификатор. Или, может быть, объединить элементы в подэлементы одного и того же родителя с идентификатором.

Идентификаторы уникальны в файле XML (в корневом элементе XMLTree)