Функция PHP xml_set_element_handler()
Определение и использование
Функция xml_set_element_handler() создает обработчики начальных и конечных элементов.
Если обработчик успешно создан, функция вернет true; в противном случае вернет false.
Синтаксис
xml_set_element_handler(parser,start,end)
Параметры | Описание |
---|---|
parser | Обязателен. Определяет XML-парсер, который будет использоваться. |
start | Обязателен. Определяет функцию, вызываемую по началу элемента. |
end | Обязателен. Определяет функцию, вызываемую по завершении элемента. |
от start Функция,规定的参数必须有三个:
Параметры | Описание |
---|---|
parser | Обязателен. Определяет переменную, содержащую XML-парсер обработчика. |
name | Обязателен. Определяет переменную, содержащую имя элемента, который вызывает эту функцию. |
data | Обязателен. Определяет массив, содержащий атрибуты элемента. |
от end Функция,规定的参数必须有三个:
Параметры | Описание |
---|---|
parser | Обязателен. Определяет переменную, содержащую XML-парсер обработчика. |
name | Обязателен. Определяет переменную, содержащую имя элемента, который вызывает эту функцию. |
Описание
start и end Параметр также может быть массивом, содержащим ссылку на объект и имя метода.
Пример
<?php $parser=xml_parser_create(); function start($parser,$element_name,$element_attrs) { switch($element_name) { case "NOTE": echo "-- Note --<br />"; break; case "TO": echo "To: "; break; case "FROM": echo "От: "; break; case "HEADING": echo "Заголовок: "; break; case "BODY": echo "Сообщение: "; } } функция stop($parser,$element_name) { echo "<br />"; } функция char($parser,$data) { echo $data; } xml_set_element_handler($parser,"start","stop"); xml_set_character_data_handler($parser,"char"); $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); ?>
Вывод:
-- Примечание -- К: Джордж От: Джон Заголовок: Памятка Сообщение: Не забудьте встречу!