parser は、XML を処理するために php に組み込まれたパーサーです。作品は3つから構成されており、イベント: 開始タグ、読み取りデータ、終了タグ。
つまり、XML を処理するときに、開始タグ、データ、および終了タグが検出されるたびに、関数は対応するアクションを実行して XML データの変換を完了します。 PHP での XML 読み取り関連関数の紹介: Quote: --------------------------------- -------------------------------------------------- オブジェクト XML 解析関数の説明 要素 xml_set_element_handler() 要素の先頭と末尾 文字データ xml_set_character_data_handler() 文字データの先頭 外部エンティティ xml_set_external_entity_ref_handler() 外部エンティティの出現 未解析の外部エンティティ xml_set_unparsed_entity_de cl_hand ler() 未解決の外部エンティティ 処理命令の発生 xml_set_processing_instruction_handler() 処理命令の発生 表記法宣言の発生 xml_set_notation_decl_handler() 表記法宣言の発生 デフォルト xml_set_default_handler() ハンドラ関数を指定しないその他のイベント ----- --------------------- ---------------------------- --------------------- ---------------- パーサーの使用例を少し挙げてみましょうXML データを読み取る関数:
$parser = xml_parser_create(); // パーサーエディターを作成します xml_set_element_handler($parser, "startElement", "endElement") / /タグがトリガーされたときに対応する関数を設定します。 startElement と endElenment はそれぞれ次のとおりです xml_set_character_data_handler( $parser, "characterData");// データを読み取るときに対応する関数を設定します $xml_file="1.xml" ;// 読み取る xml ファイルを指定します。url $filehandler = fopen($ xml_file, "r");// ファイルを開きます while ($data = fread($filehandler) , 4096)) { xml_parse($parser, $data, feof($filehandler)); } //毎回の処理のために 4096 バイトを取り出します fclose($filehandler); xml_parser_free($parser); //パーサーを閉じて解放します parser $name=false; $position=false; function startElement($parser_instance, $element_name, $attrs) // 開始タグイベントの関数 { global $name ,$position; if($element_name=="NAME") { $name=true ; $position=false; echo "Name:"; } if($element_name=="POSITION") {$name=false; $position=true; echo "Position:"; } } function CharacterData($parser_instance, $xml_data) //データ読み込み時の関数 { global $name,$position ; if($position) echo $xml_data." "; if($name) echo $xml_data." "; } function endElement($parser_instance, $element_name) //タグイベントを終了する関数 { $name = false; $ posity = false } & gt; & & lt;? xml バージョン = "1.0"? & lt;従業員> マネージャー | 李思 アシスタント 従業員>
従業員>
このプログラムの結果は次のとおりです: 引用: ----------------------------------- ----------- ---------------------------------- 名前: 張San ポジション: マネージャー 名前: Li Si ポジション: アシスタント | |