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階層までしか変換できないみたいです。