PHP XML Expat解析器知識点まとめ
3459 ワード
内蔵のExpat解析器はPHPでXML文書を扱うことを可能にした.
XMLとは?
XMLはデータを記述するために使用され、その焦点はデータが何であるかである.XMLファイルには、データの構造が記述されています.
XMLには、事前定義されたラベルはありません.独自のラベルを定義する必要があります.
Expatとは?
読み取りと更新-作成と処理-XMLドキュメントを作成するには、XML解析器が必要です.
基本的なXML解析のタイプは2つあります.ツリーベースの解析器:この解析器はXMLドキュメントをツリー型構造に変換します.ドキュメント全体を解析し、ドキュメントオブジェクトモデル(DOM)などのツリーの要素にアクセスするAPIを提供します. イベントベースの解析器:XMLドキュメントを一連のイベントと見なします.特定のイベントが発生すると、解析器は関数を呼び出して処理します.
Expat解析器はイベントベースの解析器です.
イベントベースの解析器は、結果ではなくXMLドキュメントの内容に集中します.そのため、イベントベースの解析器は、ツリーベースの解析器よりもデータに迅速にアクセスできます.
次のXMLクリップを参照してください.
イベントベースの解析器は、上記のXMLを一連の3つのイベントとして報告します.開始要素:from CDATAセクションを開始します.値:John 要素を閉じる:from 上記のXMLの例には、形式の良いXMLが含まれています.ただし、この例は、ドキュメントタイプ宣言(DTD)が関連付けられていないため、DTDが埋め込まれていないため、無効なXMLです.
ただし、Expat解析器を使用する場合は、これに違いはありません.Expatは有効性をチェックしない解析器であり、DTDは無視されます.
イベントベースの非検証XML解析器として、Expatは高速で軽量で、PHPのWebアプリケーションに適しています.
注記:XMLドキュメントの形式は良好でなければなりません.そうしないと、Expatはエラーを生成します.
インストール
XML Expat解析器はPHPコアの構成部分である.これらの関数は、インストールする必要がなく使用できます.
XMLファイル
次のXMLファイルは、私たちの例で使用されます.
XML解析器の初期化
PHPでXML解析器を初期化し、異なるXMLイベントのプロセッサを定義し、このXMLファイルを解析します.
例
以上のコードの出力:
-- Note -- To: George From: John Heading: Reminder Message: Don't forget the meeting!
動作原理の説明: xmlを通過parser_create()関数初期化XML解析器 異なるイベントハンドラに対応する関数 を作成する. xml_を追加set_element_handler()関数は、解析器が開始ラベルと終了ラベルに遭遇したときに実行する関数 を定義する. xml_を追加set_character_data_handler()関数は、解析器が文字データに遭遇したときに実行する関数 を定義する. xmlを通過parse()関数は、ファイル「test.xml」 を解析します.万一エラーが発生した場合、xml_を追加します.error_string()関数XMLエラーをテキスト説明 に変換呼び出しxml_parser_free()関数はxml_への割り当てを解放するparser_create()関数のメモリ
XMLとは?
XMLはデータを記述するために使用され、その焦点はデータが何であるかである.XMLファイルには、データの構造が記述されています.
XMLには、事前定義されたラベルはありません.独自のラベルを定義する必要があります.
Expatとは?
読み取りと更新-作成と処理-XMLドキュメントを作成するには、XML解析器が必要です.
基本的なXML解析のタイプは2つあります.
Expat解析器はイベントベースの解析器です.
イベントベースの解析器は、結果ではなくXMLドキュメントの内容に集中します.そのため、イベントベースの解析器は、ツリーベースの解析器よりもデータに迅速にアクセスできます.
次のXMLクリップを参照してください.
John
イベントベースの解析器は、上記のXMLを一連の3つのイベントとして報告します.
ただし、Expat解析器を使用する場合は、これに違いはありません.Expatは有効性をチェックしない解析器であり、DTDは無視されます.
イベントベースの非検証XML解析器として、Expatは高速で軽量で、PHPのWebアプリケーションに適しています.
注記:XMLドキュメントの形式は良好でなければなりません.そうしないと、Expatはエラーを生成します.
インストール
XML Expat解析器はPHPコアの構成部分である.これらの関数は、インストールする必要がなく使用できます.
XMLファイル
次のXMLファイルは、私たちの例で使用されます.
George
John
Reminder
Don't forget the meeting!
XML解析器の初期化
PHPでXML解析器を初期化し、異なるXMLイベントのプロセッサを定義し、このXMLファイルを解析します.
例
";
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 "
";
}
//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: George From: John Heading: Reminder Message: Don't forget the meeting!
動作原理の説明: