Функция xml_set_element_handler() определяет функцию, которая будет вызываться в начале и конце элементов XML-документа.
В случае успеха функция возвращает TRUE. В случае неудачи возвращает FALSE.
xml_set_element_handler(парсер, начало, конец)
параметр | описывать |
---|---|
парсер | Необходимый. Указывает используемый синтаксический анализатор XML. |
начинать | Необходимый. Указывает функцию, которая будет вызываться в начале элемента. |
конец | Необходимый. Указывает функцию, которая будет вызываться в конце элемента. |
Функция, указанная параметром start, должна иметь три параметра:
параметр | описывать |
---|---|
парсер | Необходимый. Указывает переменную, содержащую анализатор XML, вызывающий процессор. |
имя | Необходимый. Указывает переменную, содержащую имя (в виде строки) элемента в XML-файле, который запускает эту функцию. |
данные | Необходимый. Указывает массив, содержащий атрибуты элементов (в виде строк) в XML-файле. |
Функция, указанная параметром end, должна иметь два параметра:
параметр | описывать |
---|---|
парсер | Необходимый. Указывает переменную, содержащую анализатор XML, вызывающий процессор. |
имя | Необходимый. Указывает переменную, содержащую имя (в виде строки) элемента в XML-файле, который запускает эту функцию. |
Примечание. Начальные и конечные параметры могут представлять собой массив, содержащий ссылки на объекты и имена методов.
<?php$parser=xml_parser_create();function start($parser,$element_name,$element_attrs) { switch($element_name) { case "NOTE": echo "-- Примечание --<br />"; "TO": echo "To: "; разрыв регистра "FROM": echo "From: "; разрыв регистра "HEADING": echo "Заголовок: "; echo "Сообщение: "; } } function stop($parser,$element_name) { echo "<br />"; }function 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)) или умереть (sprintf("Ошибка XML: %s в строке %d", xml_error_string(xml_get_error_code($parser) )) xml_get_current_line_number($parser))); }xml_parser_free($parser);?>
Вывод приведенного выше кода выглядит следующим образом:
-- Примечание --Кому: ТувеОт: ЯниЗаголовок: НапоминаниеСообщение: Не забудь меня на этих выходных!