tetsunosukeのnotebook

tetsunosukeのメモです

XML_FastCreateの中身に配列を使う

配列を使いたいというか、何らかの形で繰り返しを使いたかった。たとえばDBから複数件のデータをとりだして、それが配列に入っているとして、そのそれぞれに対してli要素を繰り返すとか。

多分DBから値を取り出すと、それは(連想)配列として取れるから。という前提。

<?php
require_once("XML/FastCreate.php");

$x =& XML_FastCreate::factory('Text');

$e = "";
$xmlArray = array("hl" => "header1", "h2" => "header2");
foreach($xmlArray as $element => $text){
  $e .= $x->xml($element, $text);    // うさんくさい?
}
$x->root($e);
$x->toXML();
?>

うさんくさい?と書いたのは、ここの処理がこれでいいのか、ということ。
これ展開するとようするに

$x->root(
  $x->xml("h1", "header1")$x->xml("h2","header2")
);

ということですから。

コンマがないので、ここのところの処理はいったいどうなっているのか*1気になるところです。

ちなみに実行結果はこんな

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<root><hl>header1</hl><h2>header2</h2></root>

Beautifulizerかけてないんで。

それはそれとして、XML宣言を消す方法はないんですか。(メソッドのオーバーライドですか)

*1:中身を見ろ?