(PHP 4, PHP 5, PHP 7, PHP 8)
xml_parse — Запускает разбор XML-документа
xml_parse() разбирает XML-документ. Обработчики запрограммированных событий вызываются столько раз, сколько необходимо.
parserСсылка на используемый XML-анализатор.
data
Часть данных для разбора. Документ можно разбирать по частям, вызывая
функцию xml_parse() несколько раз с новыми данными,
пока аргумент is_final не будет установлен в
true, это сообщит анализатору, что разбирается последняя часть
документа.
is_final
Если задан и установлен в true, data
считается последней частью в этом разборе.
Возвращает 1 при успешном завершении, 0 в противном случае.
В случае неудачного разбора информацию об ошибках можно получить с помощью функций xml_get_error_code(), xml_error_string(), xml_get_current_line_number(), xml_get_current_column_number() и xml_get_current_byte_index().
Замечание:
Некоторые ошибки (такие как ошибки при разборе сущностей) выдаются в конце разбора и получить их можно только когда
is_finalустановлен вtrue.
| Версия | Описание |
|---|---|
| 8.0.0 |
Параметр parser ожидает экземпляр класса XMLParser;
раньше параметр ждал корректный xml-ресурс (resource).
|
Пример #1 Разбор по частям больших XML-документов
Этот пример показывает, как большие XML-документы могут быть прочитаны и разобраны по частям, поэтому нет необходимости держать весь документ в памяти. Обработка ошибок опущена для краткости.
<?php
$stream = fopen('large.xml', 'r');
$parser = xml_parser_create();
// установить обработчики
while (($data = fread($stream, 16384))) {
xml_parse($parser, $data); // разобрать текущую часть
}
xml_parse($parser, '', true); // завершить разбор
xml_parser_free($parser);
fclose($stream);