xml_parse

(PHP 4, PHP 5, PHP 7, PHP 8)

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,一些错误(例如 entity 错误)将会在数据末尾报告。

更新日志

版本 说明
8.0.0 parser 现在接受 XMLParser 实例;之前接受有效的 xml resource

示例

示例 #1 分块解析大型 XML 文档

此示例展示了如何以块的形式读取和解析大型 XML 文档,这样就不必将整个文档保存在内存中。为简洁起见,省略了错误处理。

<?php
$stream
= fopen('large.xml', 'r');
$parser = xml_parser_create();
// set up the handlers here
while (($data = fread($stream, 16384))) {
xml_parse($parser, $data); // parse the current chunk
}
xml_parse($parser, '', true); // finalize parsing
xml_parser_free($parser);
fclose($stream);