亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

PHP XML 拡張

組み込みの Expat パーサーにより、PHP で XML ドキュメントを処理できるようになります。

XML とは何ですか?

XML はデータを記述するために使用され、その焦點(diǎn)はデータの內(nèi)容です。 XML ファイルはデータの構(gòu)造を記述します。

XML には、事前定義されたタグはありません。獨(dú)自のタグを定義する必要があります。

XML について詳しくは、XML チュートリアルをご覧ください。


エクスパットとは何ですか?

XML ドキュメントの読み取りと更新、作成、処理を行うには、XML パーサーが必要です。

XML パーサーには 2 つの基本的なタイプがあります:

· ツリーベースのパーサー: このパーサーは XML ドキュメントをツリー構(gòu)造に変換します。ドキュメント全體を分析し、ドキュメント オブジェクト モデル (DOM) などのツリー內(nèi)の要素へのアクセスを提供します。

· イベントベースのパーサー: XML ドキュメントを一連のイベントとして扱います。特定のイベントが発生すると、パーサーはそれを処理する関數(shù)を呼び出します。

Expat パーサーはイベントベースのパーサーです。

イベントベースのパーサーは、XML ドキュメントの構(gòu)造ではなくコンテンツに焦點(diǎn)を當(dāng)てます。このため、イベントベースのパーサーはツリーベースのパーサーよりも高速にデータにアクセスできます。

次の XML フラグメントを見(jiàn)てください:

<from>Jani</from>

イベントベースのパーサーは、上記の XML を一連の 3 つのイベントとして報(bào)告します:

· 開(kāi)始要素 : from

· CDATA セクションの開(kāi)始、値: Jani

· 要素を閉じる: from

上記の XML の例には、整形式の XML が含まれています。ただし、このインスタンスには関連付けられた文書(shū)型宣言 (DTD) がないため、無(wú)効な XML です。

ただし、Expat パーサーを使用する場(chǎng)合には違いはありません。 Expat は、有効性をチェックせず、DTD を無(wú)視するパーサーです。

イベントベースの非検証 XML パーサーとして、Expat は高速かつ軽量であるため、PHP Web アプリケーションに非常に適しています。

: XML ドキュメントは適切な形式である必要があります。そうでない場(chǎng)合、Expat はエラーを生成します。


インストール

XML Expat パーサー関數(shù)は、PHP コアの不可欠な部分です。これらの機(jī)能を使用するためにインストールは必要ありません。


XML ファイル

この例では、次の parser_expat.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 ファイルを解析します。

Instance

<?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("parser_expat.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);
 ?>

上記のコードは次のように出力します:

-- 注 --
宛先: トーベ
From: ジャニ
見(jiàn)出し: リマインダー
メッセージ: 今週末は私を忘れないでください!

動(dòng)作原理:

1. xml_parser_create() 関數(shù)を通じて XML パーサーを初期化します

2. 異なるイベント ハンドラーを作成します。イベント ハンドラー関數(shù)

3. パーサーが開(kāi)始タグと終了タグに遭遇したときに実行される関數(shù)を定義する xml_set_element_handler() 関數(shù)を追加します

4. パーサーが文字データに遭遇したときに実行される関數(shù)を定義する xml_set_character_data_handler() 関數(shù)を追加します

5. xml_parse() 関數(shù)を使用してファイル「test.xml」を解析します

6. エラーがある場(chǎng)合は、xml_error_string() 関數(shù)を追加して XML エラーをテキスト記述に変換します

7.割り當(dāng)てを解放する xml_parser_free() 関數(shù) xml_parser_create() 関數(shù)のメモリ


PHP Expat パーサーの詳細(xì)情報(bào)

PHP Expat 関數(shù)の詳細(xì)については、PHP XML パーサーを參照してください。參考マニュアル。


學(xué)び続ける
||
<?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("parser_expat.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); ?>
提出するリセットコード
  • おすすめコース
  • コースウェアのダウンロード
現(xiàn)時(shí)點(diǎn)ではコースウェアはダウンロードできません。現(xiàn)在スタッフが整理中です。今後もこのコースにもっと注目してください?