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
- 処理するデータ。ドキュメントは、
is_final
パラメータが設定され、 最後のデータが処理されtrue
になるまで、新規のデータに関して 複数回 xml_parse() をコールすることにより、 部分毎で処理することが可能です。 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
に設定されている場合だけです。
例
例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);