Загрузка Строки, Содержащей Ссылки На Сущности (& Nbsp; И Т. Д.), В Xml

Задача В системе, использующей шаблоны XSLT, предоставьте создателям контента возможность просто использовать знакомые им имена объектов, например & nbsp; & мдаш; и т. д. без необходимости использования цифровых определений, таких как & #160;, & #x00A0; или размещение специальных символов в CDATA Проблема При загрузке множества блоков в XML из базы данных у меня возникла следующая проблема: Парсер жаловался на неописанные сущности примерно так: «Сущность: строка 1: ошибка парсера: сущность 'йена' не определена».

Решение Чтобы избежать такой проблемы при загрузке строки с описанием сущностей, нам нужно делать то, что он от нас ожидает, т.е.

описывать эти сущности.

Загруженная строка должна выглядеть примерно так:

]> Злой& nbsp; текст со злыми сущностями & иен;
Чтобы не тренироваться по десять раз, можно один раз подобрать файл со списком всех необходимых названий.

$entities = file_get_contents(PATH_SYS. 'templates/symbols.ent');
Это работает примерно так: Подготовим линию к загрузке
$block_content = ' '.

$block_content.' ';

Используя метод DOMDocument::loadXML:
$dom_child_doc = DOMDocument::loadXML($block_content,LIBXML_NOENT); $block_content_node = $blockDoc-> importNode($dom_child_doc-> lastChild,true); $block = $blockDoc-> blocks-> appendChild($block_content_node);
Использование функции simplexml_load_string:
$xml = simplexml_load_string($block_content,'SimpleXMLElement',LIBXML_NOENT); $dom_sxe = dom_import_simplexml($xml); $block_content_node = $blockDoc-> importNode($dom_sxe, true); $block = $blockDoc-> blocks-> appendChild($block_content_node);
$blockDoc — это объект DOMDocument, к которому мы добавляем блоки.

$blockDoc-> blocks — узел этого документа, непосредственно в который мы помещаем все блоки Мы должны не забыть установить опцию «LIBXML_NOENT — конвертировать сущности» для загрузчика строк, если есть необходимость конвертировать все имена сущностей непосредственно в нужные нам символы.

Теги: #xml #php #entity #ссылки на сущности #nbsp; #Ошибка анализатора сущностей #Чулан

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.