xml_parse
(PHP 4, PHP 5, PHP 7)
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; ранее ожидался ресурс (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);