XML_Unserializer Options

XML_Unserializer Options -- XML_Unserializer の全てのオプションのリスト

オプションの導入

オプションは、XML_Unserializer がパースされた XML をどの様に処理するか、 に影響します。 属性をパースすべきかどうか、複雑なデータ型を処理するために 連想配列もしくはオブジェクトのいずれを使用するか、などを定義します。

オプションは、 XML_Unserializer のコンストラクタ に連想配列として渡すことができます。 また、セットするために setOption() あるいは、 setOptions() を使用することもできます。

利用可能な全てのオプション

以下は、XML_Unserializer でサポートしている全てのオプションのリストです。

表 68-1XML_Unserializer options

オプション可能な値デフォルト詳細
complexType'array' または 'object''array' ネストしたタグが連想配列もしくはオブジェクトのいずれで返されるかを 定義します
tagAsClassTRUE または FALSETRUE complexType が 'object' に設定されている場合、 タグ名をクラス名として使用するかどうか、を定義します。 もし、タグの名前を持つクラスがない場合、 'defaultClass' によって定義されたクラスが使用されます。
defaultClass任意の文字列stdClasscomplexType が 'object' に設定されている場合、 オブジェクトを生成するために使用されるクラスを定義します。
keyAttribute任意の文字列 または 配列'_originalKey' もし、オプションで指定した属性がタグに存在していれば、 親オブジェクトもしくは配列でのキーもしくはプロパティ名に 使用されます。また、異なるタグに異なるキー属性を使用したい場合、 連想配列を指定することもできます。この場合、配列のキーは タグ名と属性名に一致する値を取ります。
typeAttribute任意の文字列'_type'もし、この属性がタグに存在していれば、タグのコンテンツは指定した型に変換されます。可能な型は、string, integer, float, boolean, 配列もしくはオブジェクトです。
classAttribute任意の文字列'_class'もし、XML_Unserializer がオブジェクトを生成する場合、タグがこのオプションで属性が指定されない限り、stdClassのインスタンスとなります。もし、セットされた場合、属性値としてストアされたクラス名が使用されます。
parseAttributesTRUE または FALSEFALSEこのオプションで、タグの属性もパースするかどうかを XML_Unserializer に指示することができます。 次の2つのオプションで、 パースされた属性をどの様に処理するかを定義します。
attributesArrayFALSE または任意の文字列FALSEfalseにセットされた場合、 属性はネストしたタグとして処理されます。 もし、文字列をセットした場合、新しい配列が生成され、 このオプションで指定したキーを使った親構造にストアされます。
prependAttributes任意の文字列''属性名の接頭辞を指定します。
contentName任意の文字列'_content'属性や、cdata やタグを含むタグをパースする場合、 cdata はここで指定されたインデックスにストアされます。
tagMap連想配列array()PHP クラスにタグ名をマップする事ができます。 タグ名はキーで、 値はそれぞれのタグで使用されるクラス名でなければなりません。
forceEnum順序付けされた配列array() タグの反復数とは無関係に、順序づけされた配列に自動変換される タグのリストを指定することができます。これによりコード中の if 文を節約することができます。
encoding任意の有効なエンコーディング文字列null オリジナル文章のエンコーディングを定義します。
targetEncoding任意の有効なエンコーディング文字列null 結果データのエンコーディングを定義します。
decodeFunction任意の有効な PHP コールバックnull このオプションを使用することで、結果にストアされる前に 文章の全ての文字データや属性に対して適用させるコールバック関数 またはメソッドを定義する事ができます。 これにより、XML 内のデータをデコードしたり、 全てのコンテンツを小文字に変換することができます。
returnResultTRUE または FALSEFALSE TRUE の場合、文章がアンシリアライズ可能であれば XML_Unserializer::unserialize() はただの TRUE の代わりに結果を返します。

オプションの例

以下の例は、XML_Unserializer でどの様にオプションをセットするか、 を示しています。

以下の例は、インスタンスがすでに生成されている場合、 XML_Unserializer でどの様にオプションをセットするか、 を示しています。