Задача В системе, использующей шаблоны XSLT, предоставьте создателям контента возможность просто использовать знакомые им имена объектов, например & nbsp; & мдаш; и т. д. без необходимости использования цифровых определений, таких как & #160;, & #x00A0; или размещение специальных символов в CDATA Проблема При загрузке множества блоков в XML из базы данных у меня возникла следующая проблема: Парсер жаловался на неописанные сущности примерно так: «Сущность: строка 1: ошибка парсера: сущность 'йена' не определена».
Решение Чтобы избежать такой проблемы при загрузке строки с описанием сущностей, нам нужно делать то, что он от нас ожидает, т.е.
описывать эти сущности.
Загруженная строка должна выглядеть примерно так:
]> Злой& nbsp; текст со злыми сущностями & иен;Чтобы не тренироваться по десять раз, можно один раз подобрать файл со списком всех необходимых названий.
$entities = file_get_contents(PATH_SYS. 'templates/symbols.ent');Это работает примерно так: Подготовим линию к загрузке
$block_content = ' '.Используя метод DOMDocument::loadXML:$block_content.' ';
$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; #Ошибка анализатора сущностей #Чулан
-
Ключевые Маркетинговые Приемы В Saas-Проекте
19 Oct, 24 -
Игра На Uwp: С Чего Начать
19 Oct, 24