SimpleXMLElementを使って配列をXMLに変換

Pocket

PHPで配列をXMLに変換するサンプルです。
SimpleXMLElementを使います。

$arrs = array(
  array(
    "title" => "Apple",
    "description" => "About Apple."),
  array(
    "title" => "Orange",
    "description" => "About Orange."));
$xmlstr = "<?xml version="1.0" ?><root></root>";
$xml = new SimpleXMLElement($xmlstr);
foreach($arrs as $arr){
  $xmlitem = $xml -> addChild("item");
  foreach($arr as $key => $value){
    $xmlitem -> addChild($key, $value);
  }
}
print $xml -> asXML();

まず$arrsという配列を作ります。要素は2個でそれぞれも配列です。
丁寧に書くと次の通りです。
$arrs[0]["title"] = "Apple";
$arrs[0]["description"] = "About Apple.";
$arrs[1]["title"] = "Orange";
$arrs[1]["description"] = "About Orange.";

$xmlstrという変数に最低限のXMLとしての文字列を代入します。

SimpleXMLElementを使って、$xmlという箱を作ります。

foreachを使って2個の要素について処理をします。
まず$arrs[0]について処理をします。
addChildを使って$xmlという箱の中に$xmlitemという箱を作ります。
$arrs[0]の中の2個の要素について処理をします。
addChildを使って$xmlitemという箱の中に"title"という箱を作り、"Apple"を入れます。
addChildを使って$xmlitemという箱の中に"description"という箱を作り、"About Apple."を入れます。

次に$arrs[1]について処理をします。
addChildを使って$xmlという箱の中に$xmlitemという箱をもう一つ作ります。
$arrs[1]の中の2個の要素について処理をします。
addChildを使って$xmlitemという箱の中に"title"という箱を作り、"Orange"を入れます。
addChildを使って$xmlitemという箱の中に"description"という箱を作り、"About Orange."を入れます。

asXMLを使って$xmlという箱をXMLとしての文字列に整形します。
これをprintで出力します。

<?xml version="1.0"?>
<root><item><title>Apple</title><description>About Apple.</description></item><item><title>Orange</title><description>About Orange.</description></item></root>

[ 2012年6月5日 | カテゴリー: PHP | タグ: , ]

« | »

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報