Функция PHP xml_set_unparsed_entity_decl_handler()
Определение и использование
Функция xml_set_unparsed_entity_decl_handler() определяет функцию, которая вызывается при встрече необрабатываемых имен сущностей (NDATA)。
Если обработчик был успешно создан, функция вернет true; в противном случае вернет false.
Синтаксис
xml_set_unparsed_entity_decl_handler(parser,handler)
Параметры | Описание |
---|---|
parser | Обязателен. Определяет используемый XML-парсер. |
handler | Обязателен. Определяет функцию. |
от handler Функция,规定的参数必须有六个:
Параметры | Описание |
---|---|
parser | Обязателен. Определяет переменную, содержащую XML-парсер для вызова обработчика. |
name | Обязателен. Определяет переменную, содержащую имя сущности. |
base |
Обязателен. Определяет переменную, содержащую основу для системы идентификаторов сущности (system_id). В настоящее время этот параметр обычно устанавливается пустой строкой. |
system_id | Обязателен. Определяет переменную, содержащую системный идентификатор сущности. |
public_id | Обязателен. Определяет переменную, содержащую общие идентификаторы сущности. |
notation | Обязателен. Определяет переменную, содержащую символы, идентифицирующие тип данных сущности. |
Описание
handler Параметр также может быть массивом, содержащим ссылку на объект и имя метода.
Пример
<?php $parser=xml_parser_create(); function char($parser,$data) { echo $data; } function unparsed_ent_handler($parser,$entname, $base,$sysID,$pubID,$notname) { print "$entname"; print "$sysID"; print "$pubID"; print "$notname"; } xml_set_unparsed_entity_decl_handler($parser, "unparsed_ent_handler"); $fp=fopen("test.xml","r"); while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) or die (sprintf("Ошибка XML: %s в строке %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } xml_parser_free($parser); ?>