モード

モード – パースモードについての解説

XML_Parser のパースモード

XML_Parser のパースには、下記の2つのモードがあります。

  • func

  • event

'event' モードでは、タグの名前に依らず startHandler() および endHandler() が コールされます。 これらのメソッドにおいては、タグ名(第2の引数としてあたえられる)を自らチェックし、 switch/case 文などを使って、行うべき処理を決める必要があるかもしれません。

'func' モードでは、タグの名前により、異なるメソッドが コールされます。 これにより、タグごとに異なるメソッドを割り付けることができます。 開始タグを処理するメソッドは、 [tagname] を処理したい要素名として、 xmltag_[tagname]() という名前になります。 つまり、<title> タグの開始を処理するためのメソッドを作成する場合、 そのメソッド名は xmltag_title となります。

終了タグを処理するメソッドは、xmltag_[tagname]_() となります(末尾のアンダースコアで要素の開始のハンドラと区別されます。)

XML タグには "."、":" や "-" のような文字を使用できますが、これらの文字は PHP の関数名には使用できません。 そこで、XML_Parser はこれらの文字を "_" で置き換えた名前でコールバック関数を作成します。

メソッドが存在しなければ、要素は処理されずに、そのタグがスキップされます。 ただし、メソッド xmltag() および xmltag_() を実装している場合は別で、これらのメソッドを代わりに使用します。

モードの設定

モードの設定には、2つの方法があります。

  • モードをコンストラクタの第2引数として指定する

    XML 文書の処理のために XML_Parser のサブクラスを実装した場合は、 そのコンストラクタで XML_Parser::XML_Parser() をコールする必要があります。 このメソッドが、モードを第2引数として受け取ります。

  • XML_Parser::setMode() を使って指定する

XML_Parser 使用の例 (Previous) 異なるタイプの入力データに関する解説 (Next)
Last updated: Tue, 23 Sep 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.