phpでXMLファイルのデータを取得し、配列に変換する方法を行いました。
あまり頻繁には使用しないと思うのでメモします。
今回は下記のphpの関数を使用しています。
simplexml_load_file() simplexml_load_string() get_object_vars()
【XMLファイルのデータが下記のような場合】
<?xml version="1.0" encoding="UTF-8"?> <test> <title>raining</title> <link>http://raining.bear-life.com/</link> <description>日常で感じたこと、覚えたことの記録</description> <language>ja</language> </test>
■ XMLファイルから配列に変換
「simplexml_load_file()」関数を使用し、「test.xml」のデータを取得します
$object = simplexml_load_file('test.xml');
「simplexml_load_file()」で取得した値はオブジェクトで取得されます。
取得した値は下記のようになります。
SimpleXMLElement Object ( [title] => raining [link] => http://raining.bear-life.com/ [description] => 日常で感じたこと、覚えたことの記録 [language] => ja )
上記で取得した$objectを「get_object_vars()」関数を使用し、
配列に変換します。
$arr = get_object_vars($object);
「get_object_vars()」で取得した値は下記のように配列で取得されます。
Array ( [title] => raining [link] => http://raining.bear-life.com/ [description] => 日常で感じたこと、覚えたことの記録 [language] => ja )
■ XMLデータ文字列から配列に変換
「simplexml_load_string()」関数を使用し、XMLデータ文字列をオブジェクトに変換します。
$str = '<?xml version="1.0" encoding="UTF-8"?> <test> <title>raining</title> <link>http://raining.bear-life.com/</link> <description>日常で感じたこと、覚えたことの記録</description> <language>ja</language> </test>'; $object = simplexml_load_string($str);
取得したオブジェクトを「get_object_vars()」関数を使用し、
配列に変換します。
$arr = get_object_vars($object);
「get_object_vars()」で取得した値は下記のように配列で取得されます。
Array ( [title] => raining [link] => http://raining.bear-life.com/ [description] => 日常で感じたこと、覚えたことの記録 [language] => ja )
※「get_object_vars()」で配列に変換できるのは1階層までしか変換できないみたいです。