2005/02/04
|
PEAR::XML_Serializer XMLファイルを配列から作成:クラス作成時のオプションについて
カテゴリ : XML_Serializer
執筆者:
itoh (1:08 am)
|
PEAR::XML_Serializerの使用例を、配列からRDFファイル(RSS1.0)を作成するときを例にとって説明。 まず、XML_Serializerクラスを作成。その際に、オプションを設定することで様々な場合に対応できるらしい。 引用:
最初のrequire_onceで、pear呼び出し。 最後の行で、クラスを作成。後でこのクラスにXMLコーディングしたいデータをクラスなり配列なりで加えていく。 で、クラス作成時に引数として使う$option配列の各キーに入れる値はこんな意味がある。 [mode]: 値にsimplexmlを指定することで、連想配列でない配列(キーが0,1,2...のやつね)の場合はその親のキーがタグ名として使われる。これを指定しない場合は、defaultTagNameオプションで指定されたタグ名が使われる。 たとえば、配列 $yasai = array( "fruits"=>array("banana","apple","melon","orange"), ) を表示するときに mode=simplexmlを指定した場合 <fruits>banana</fruits> <fruits>apple</fruits> <fruits>melon</fruits> <fruits>orange</fruits> modeを指定しない場合(defaultTagName=itemの場合) <fruits> <item>banana</item> <item>apple</item> <item>melon</item> <item>orange</item> </fruits> となる。 [indent](default = ""):人がXMLファイルを見たときにインデントに使う文字列。人が見ないことを前提にするなら、空文字で良い。 [linebreak](default = "?n"):改行に使う文字。人が見ないことを(以下略) [typeHints](default = FALSE):XMLタグの属性にその要素が配列から作成されたか、クラスから作成されたか、文字列から作成されたかなどの作成前の情報を付与する。 これは、その後XMLをUnserializeする際に有用である。多分、PEAR::XML_Unserializeで使うんだと思うが、そのつもりがないなら、falseにするべきだと思う。 [addDecl](default = FALSE):<?xml version="1.0"?>のタグを付けるか付けないか。 [encoding](default = ""):addDeclオプションで付けたタグにencode属性を付けるときの値。 [rootName](default = ""):ルートの(最初の)XMLタグ名。デフォルトのままだと、そのデータの型が入る。例えば、arrayとかclassとか。 [rootAttributes](default = array()):rootNameで指定されたルートタグに入れる属性を配列で指定。 [defaultTagName](default = "XML_Serializer_Tag"):連想配列ではなく、連番の配列で値を入れたときのタグ名。modeでsimplexmlを指定していても、親のキーが存在しないときはこれが使われる。 [attributesArray](default="null"):このキーが現れたら、以降は親のキーをタグ名として、そのタグの属性として処理される。 上記の例で使っているのは、これだけだが、ほかにも [addDoctype] (default = FALSE): <!DOCTYPE>のタグを付けるか付けないか。 [doctype] (default = null): 上記のタグのURI属性 [indentAttributes](default =FALSE): タグの属性を表示するときに使うインデント。"_auto"にしておくと、見やすくしてくれる。 [scalarAsAttributes](default = FALSE): 連想配列を展開中にキーが数字だった場合、親キーをタグ名としてノードを分ける。 なんてのがある。(他にもある。 ) |
トラックバックURL
)