最近、phpでXMLを扱うことがあり、
PEARのライブラリのXML_Serializerを使用しました。
このライブラリを使用することにより、XMLを簡単に扱うことができ、
XMLから配列に変換したり、逆に配列からXMLに変換することも可能になります。
$xmlarray = array(
'Table' => array(
'Record' => array(
array(
'Code' => '123'
,'Name' => 'あああ'
),
array(
'Code' => '456'
,'Name' => 'いいい'
)
)
)
);
このような配列があった場合に、XML_Serializerを使用することでXMLに変換することが出来ます。
$serializer = new XML_Serializer();
$serializer->setOption('mode','simplexml');
$serializer->serialize($xmlarray);
$xml = $serializer->getSerializedData();
echo $xml;
出力結果は以下のようなXMLになります。
<Record>
<Code>123</Code>
<Name>あああ</Name>
</Record>
<Record>
<Code>456</Code>
<Name>いいい</Name>
</Record>
</Table>
逆にXMLから配列に変換するためにはXML_Unserializerを使用します。
XML_UnserializerはXML_Serializerのライブラリに含まれています。
上記のようなXMLの文字列が格納された$xmlという変数があったとします。
$unserializer = new XML_Unserializer();
$unserializer->setOption('parseAttributes',true);
$unserializer->unserialize($xml);
$data = $unserializer->getUnserializedData();
これによりXMLから以下の構造の配列を取得できます。
[Record] => Array(
[0] => Array(
[Code] => 123
[Name] => あああ
)
[1] => Array(
[Code] => 456
[Name] => いいい
)
)
)
phpでXMLを扱う時には、ぜひ使ってみて下さい。