2009年04月14日
php xmlオブジェクトを連想配列にする
PEARのXML_Unserializerを使うと楽です。
適当なxmlファイル(wine.xml)があったとします。
wine.xml
<?xml version="1.0" encoding="utf-8" ?> <wine> <item> <rank>1</rank> <country>フランス</country> <amount>5,329,449</amount> </item> <item> <rank>2</rank> <country>イタリア</country> <amount>5,056,648</amount> </item> <item> <rank>3</rank> <country>スペイン</country> <amount>3,934,140</amount> </item> </wine>
phpコードです。
sample.php
<?php
require_once 'XML/Unserializer.php';
$Unserializer=new XML_Unserializer();
$Unserializer->setOption('parseAttributes',TRUE);
if($status=$Unserializer->unserialize(file_get_contents('wine.xml'))){
$result=$Unserializer->getUnserializedData();
echo '<pre>';
print_r($result);
echo '</pre>';
}
?>
出力結果:
Array
(
[item] => Array
(
[0] => Array
(
[rank] => 1
[country] => フランス
[amount] => 5,329,449
)
[1] => Array
(
[rank] => 2
[country] => イタリア
[amount] => 5,056,648
)
[2] => Array
(
[rank] => 3
[country] => スペイン
[amount] => 3,934,140
)
)
)
連想配列化されてます。
