第11章 XML
教科書「プログラミングPHP 第2版」
上級試験は、オライリーから出版されているプログラミングPHP 第2版を教科書に出題されます。
XML(eXtensible Markup Language)
- サーバー間の通信(データ交換)によく用いられる
- 必ず開きタグと閉じタグが対になる。<br>は<br />
- タグのネストは可能。オーバーラップは不可。
- ドキュメントの先頭に、バージョンを明記
- 最上位要素は一つだけ
- header関数で、MIME typeをtext/xmlにする
- RSSはXMLドキュメント
パース
- イベント駆動ライブラリ、DOMベースライブラリ、SimpleXML
- xml_set_element_handler(パーサ、開始要素ハンドラ、終了要素ハンドラ)。開始要素ハンドラ
- xml_set_character_data_handler(パーサ、ハンドラ)で文字データハンドラを設定
- xml_set_processing_instruction_handler(パーサ、ハンドラ)で処理ハンドラを設定
- 標準エンティティは、アンド、大なり、小なり、クォート、アポストロフィ。独自エンティティ定義可。
- xml_set_unparsed_entity_decl_handler(パーサ、ハンドラ)で処理されないエンティティのハンドラを設定
- xml_set_default_handler(パーサ、ハンドラ)ででフォルトハンドラを設定
文字
- PHP内部でUTF-8だが、XMLパーサは、ISO-8859-1、US-ASCII、UTF-8が可(UTF-16はサポートされていない)。
- XML_OPTION_TARGET_ENCODINGでエンコーディングを取得/設定
- デフォルトでは、要素と属性は大文字に変換される。XML_OPTION_CASE_FOLDINGオプションで設定
使用する
- xml_parser_create(エンコーディング)で作成。xml_parser_free()で解放。
- xml_parse()はパース成功でtrue、失敗でfalse
- xml_get_error_code()でエラー内容を取得。xml_error_string(エラーコード)でメッセージに変換
- xml_set_object(オブジェクト)でオブジェクト登録
※原書を元にしています。日本語訳本とは用語等が異なる可能性があります。
Copyright (C) 2003-2018. PHP で WEB 作成 All rights reserved.