array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.xml-parse.php', 1 => 'xml_parse', ), 'up' => array ( 0 => 'ref.xml.php', 1 => 'XML パーサ 関数', ), 'prev' => array ( 0 => 'function.xml-parse-into-struct.php', 1 => 'xml_parse_into_struct', ), 'next' => array ( 0 => 'function.xml-parser-create-ns.php', 1 => 'xml_parser_create_ns', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/xml/functions/xml-parse.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
xml_parse — XML ドキュメントの処理を開始する
xml_parse() は XML ドキュメントを処理します。 設定されているイベントのハンドラが、必要に応じてコールされます。
成功した場合に 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);