xml_parse

(PHP 4, PHP 5, PHP 7)

xml_parseЗапускает разбор XML-документа

Описание

xml_parse ( XMLParser $parser , string $data , bool $is_final = false ) : int

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; ранее ожидался ресурс (resource).

Примеры

Пример #1 Разбор по частям больших XML-документов

Этот пример показывает, как большие XML-документы могут быть прочитаны и разобраны по частям, поэтому нет необходимости держать весь документ в памяти. Обработка ошибок опущена для краткости.

<?php
$stream 
fopen('large.xml''r');
$parser xml_parser_create();
// установить обработчики
while (($data fread($stream16384))) {
    
xml_parse($parser$data); // разобрать текущую часть
}
xml_parse($parser''true); // завершить разбор
xml_parser_free($parser);
fclose($stream);