国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHP XML Expat パーサー

PHP XML Expat パーサー

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

XML とは何ですか?

XML は拡張マークアップ言語です。タグとは、コンピュータが理解できる情報記號のことで、コンピュータはさまざまな情報を含む記事を処理できます。これらのタグをどのように定義するかは、HTML などの國際的に受け入れられているマークアップ言語を選択することも、XML などの関係者が自由に決定するマークアップ言語を使用することもできます。これが言語の拡張性です。 XML は SGML から簡略化および変更されています。主にXML、XSL、XPathなどを使用します。

上の段落は XML の基本的な定義であり、広く受け入れられている説明です。簡単に言うと、XML はデータ記述言語ですが、通常は、コンピューターによって認(rèn)識され実行されるという共通言語の基本機能を備えていません。望む効果を?qū)g現(xiàn)するか、コンピュータに受け入れられるように解釈するには、別の言語に依存するしかありません。

XML を初めて使用する場合は、XML の定義が何なのか理解できないかもしれません。おそらく、視點を変えて XML とは何か、つまりアプリケーション側(cè)から XML を理解し、XML で何ができるのかを理解すると、より空の定義よりも役立つはずです。

XML アプリケーション サーフェスは、主にドキュメント タイプとデータ タイプの 2 つのタイプに分けられます。一般的な XML アプリケーションをいくつか示します。

1. カスタム XML+XSLT=>HTML。最も一般的なドキュメント アプリケーションの 1 つ。 XML にはドキュメント全體の XML データが格納され、XSLT によって XML が変換および解析され、XSLT 內(nèi)の HTML タグと結(jié)合されて、最終的に HTML となり、ブラウザ上に表示されます。典型的な例は、CSDN への投稿です。

2. マイクロデータベースとして、XML は最も一般的なデータベースのアプリケーションの 1 つです。関連する XML API (MSXML DOM、JAVA DOM など) を使用して XML にアクセスし、クエリを?qū)g行します。掲示板の実裝では、データベースとして XML が使用されていることがよくあります。

3. 通信データとして。最も典型的なのは WEB SERVICE で、XML を使用してデータを転送します。

4. 一部のアプリケーションの構(gòu)成情報データとして。一般的なものは、J2EE が WEB サーバーを構(gòu)成するときに使用される web.XML です。

5. 他のドキュメントの XML 形式。ワードやエクセルなど。

6. データ間のマッピング関係を保存します。ハイバネートなど。

ここで紹介する 6 つのアプリケーションは、基本的に XML の主な用途をカバーしています。つまり、XML は従來のプログラミング言語ほど具體的ではない抽象言語です。これを深く理解するには、その応用から始めて、必要な用途を選択し、次にその使用方法を?qū)Wぶ必要があります。

XML は、データが何であるかに重點を置いて、データを記述するために使用されます。 XML ファイルはデータの構(gòu)造を記述します。

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

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

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

Expat はストリーム指向のパーサーです。パーサー コールバック (またはハンドラー) 関數(shù)を登録し、そのドキュメントの検索を開始します。パーサーは、ファイルの指定された場所を認(rèn)識すると、その部分に対応するハンドラーを呼び出します (ハンドラーを登録している場合)。ファイルはパーサーに供給され、そこで複數(shù)のフラグメントに分割されてメモリにロードされます。したがって、expat はこれらの巨大なファイルを解析できます。

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

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

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

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

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

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

次の XML スニペットを見てください:

<from>Jani</from>

イベントベースのパーサーは、上記の XML を 3 つのイベントのシーケンスとして報告します:

·使用する イベントベースのパーサーで使用する. CDATA セクション、値: Jani

· 終了要素: from

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

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

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

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

インストール

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

XML ファイル

この例では次の XML ファイルが使用されます。 to>トーベ</to>

<from>ジャニ</from>

<Heading>リマインダー</Heading>

<body>今週末は私を忘れないでください!</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);
 ?>
上記のコードは次のように出力します:

-- 注意 --
宛先: Tove
差出人: Jani
見出し: リマインダー
メッセージ: 今週末は私を忘れないでください!

動作原理:

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

2. さまざまなイベント ハンドラーに一致する関數(shù)を作成します

3. xml_set_element_handler() 関數(shù)を追加して、パーサーが開始タグと終了タグを検出したときに実行する関數(shù)を定義します

4. パーサーが検出したときに定義する xml_set_character_data_handler() 関數(shù)を追加します開始タグと終了タグ。文字データが見つかったときにどの関數(shù)が実行されるか

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

6. エラーが発生した場合は、xml_error_string() 関數(shù)を追加します。 XML エラーをテキストの説明に変換します

7 . xml_parser_free() 関數(shù)を呼び出して、xml_parser_create() 関數(shù)に割り當(dāng)てられたメモリを解放します

PHP Expat パーサーの詳細(xì)については、

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