PHPで配列をSimpleXMLに変換する方法
PHPでは、array_walk_recursive() 関数を使うことで、配列を SimpleXML オブジェクト(XMLドキュメント)へ簡単に変換できます。array_walk_recursive() は PHP に標準で組み込まれている関数で、多次元配列のすべての要素を再帰的に処理できるのが特徴です。この関数を使った変換では、配列のキーがXMLの要素名(タグ)に、値がその要素の内容にそれぞれ対応します。
それでは、実際のコード例を見てみましょう。
コード例
<?php
$array = array (
'name' => 'alex',
'empdept' => 'account',
'address' => array (
'city' => 'michigan'
),
);
// ルート要素を持つXMLオブジェクトを作成します
$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($array, array ($xml, 'addChild'));
print $xml->asXML();
?>
出力結果
<?xml version="1.0"?> <root> <name>alex</name> <empdept>account</empdept> <city>michigan</city> </root>
処理の流れ
new SimpleXMLElement('<root/>')で、ルート要素「root」を持つXMLオブジェクトを生成します。array_walk_recursive()が配列の各要素を再帰的にたどり、キーと値のペアごとにaddChildメソッドを呼び出して子要素を追加していきます。$xml->asXML()で、構築されたXMLを文字列として出力します。
なお、ネストした配列(上の例では address の中にある city)は、親子関係を持つ階層構造としてではなく、ルート直下にフラットな要素として追加される点に注意してください。
エラーが発生する場合の対処法
実行時に「PHP Fatal error: Uncaught Error: Class 'SimpleXMLElement' not found」というエラーが表示される場合は、SimpleXML 拡張モジュールがサーバーにインストールされていないことが原因です。php-xml や php-simplexml パッケージをインストールすれば解決できます。
-
JavaScriptで配列をセット(Set)に変換する方法|new Set()の使い方を解説
JavaScriptでは、new Set() コンストラクタを使うことで、配列を簡単にセット(Setオブジェクト)へ変換できます。セットは同じ値を自動的に1つだけ保持する性質を持つため、配列から重複した要素を取り除きたい場合にも非常に便利です。 配列をセットに変換するサンプルコード 以下は、ボタンをクリックすると配列がセットに変換されて表示される、完全なHTMLサンプルです。 <!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport co
-
【Android】配列をArrayListに変換する方法をサンプルコード付きで解説
このチュートリアルでは、Androidアプリ開発において配列(Array)をArrayListに変換する方法を、実際のサンプルコードとともにわかりやすく解説します。 配列からArrayListへの変換の基本 Javaでは、Arrays.asList()メソッドを使うことで、配列をリスト形式に変換できます。さらに、その結果をArrayListのコンストラクタに渡すことで、要素の追加や削除が自由に行える本格的なArrayListとして扱えます。 String[] array = new String[]{ANDROID, JSP, JAVA, STRUTS, HADOOP, JSF}; Arra