PHP XML Expat パーサーは PHP で重要な役割を果たします。この記事では、それに関連する知識ポイントについて詳しく説明します。
XMLとは何ですか?
XML は、データが何であるかに重点を置いて、データを記述するために使用されます。 XML ファイルはデータの構造を記述します。
XML には、事前定義されたタグはありません。独自のタグを定義する必要があります。
XML について詳しくは、XML チュートリアルをご覧ください。
エクスパットとは何ですか?
XML ドキュメントの読み取りと更新、作成、処理を行うには、XML パーサーが必要です。
XML パーサーには 2 つの基本的なタイプがあります:
ツリーベースのパーサー: このパーサーは XML ドキュメントをツリー構造に変換します。ドキュメント全体を分析し、ドキュメント オブジェクト モデル (DOM) などのツリー内の要素へのアクセスを提供します。
イベントベースのパーサー: XML ドキュメントを一連のイベントとして扱います。特定のイベントが発生すると、パーサーはそれを処理するために 関数 を呼び出します。
Expat パーサーはイベントベースのパーサーです。
イベントベースのパーサーは、XML ドキュメントの構造ではなくコンテンツに焦点を当てます。このため、イベントベースのパーサーはツリーベースのパーサーよりも高速にデータにアクセスできます。
次の XML フラグメントを見てください:
イベントベースのパーサーは、上記の XML を 3 つのイベントのシーケンスとして報告します:
Start 要素: from
Start CDATA セクション 、値: Jani
終了要素: from
上記の XML の例には、整形式の XML が含まれています。ただし、このインスタンスには関連付けられた文書型宣言 (DTD) がないため、無効な XML です。
ただし、Expat パーサーを使用する場合は、これに違いはありません。 Expat は、有効性をチェックせず、DTD を無視するパーサーです。
イベントベースの非検証 XML パーサーとして、Expat は高速かつ軽量であるため、PHP Web アプリケーションに非常に適しています。
注: XML ドキュメントは適切な形式である必要があります。そうでない場合、Expat はエラーを生成します。
インストール
XML Expat パーサー関数は、PHP コアの不可欠な部分です。これらの機能を使用するためにインストールは必要ありません。
XML ファイル
この例では次の XML ファイルが使用されます:
<?xml version="1.0" encoding="ISO-8859-1"?> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note>
XML パーサーの初期化
PHP で XML パーサーを初期化し、さまざまな XML イベントのハンドラーを定義してから、解析しますこの XML ファイル。
例
<?php //Initialize the XML parser $parser=xml_parser_create(); //Function to use at the start of an element function start($parser,$element_name,$element_attrs) { switch($element_name) { case "NOTE": echo "-- Note --<br>"; break; case "TO": echo "To: "; break; case "FROM": echo "From: "; break; case "HEADING": echo "Heading: "; break; case "BODY": echo "Message: "; } } //Function to use at the end of an element function stop($parser,$element_name) { echo "<br>"; } //Function to use when finding character data function char($parser,$data) { echo $data; } //Specify element handler xml_set_element_handler($parser,"start","stop"); //Specify data handler xml_set_character_data_handler($parser,"char"); //Open XML file $fp=fopen("test.xml","r"); //Read data while ($data=fread($fp,4096)) { xml_parse($parser,$data,feof($fp)) or die (sprintf("XML Error: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser))); } //Free the XML parser xml_parser_free($parser); ?>
上記のコードは出力します:
-- Note --
To: Tove
From: Jani
見出し: リマインダー
メッセージ: 今週末は私を忘れないでください!
仕組み:
xml_parser_create () 関数により XML パーサーを初期化します
さまざまなイベント ハンドラープログラムに一致する関数を作成します
xml_set_element_handler() 関数を追加して、パーサーが開始タグと終了タグに遭遇したときに実行する関数を定義します
xml_set_character_data_handler( ) 関数 パーサーが文字データを検出したときに実行する関数を定義します
xml_parse() 関数を通じてファイル「test.xml」を解析します
エラーがある場合は、XML エラーを変換する xml_error_string() 関数を追加しますテキスト記述に変換します
xml_parser_create() 関数に割り当てられたメモリを解放するには、xml_parser_free() 関数を呼び出します
この記事では、PHP XML Expat パーサーの基本的な知識のポイントを詳細に説明します。 php中国語ウェブサイト。
関連推奨事項:
PHP MySQL Delete ステートメントに関する関連知識
PHP MySQL Update ステートメントに関する関連コンテンツ
以上がPHP XML Expat パーサーの基本についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。