xml 文章を配列やオブジェクトにしてくれる PEAR::XML_Serializer
http://pear.php.net/package/XML_Serializer
Amazon Web Service で独自の広告を作っていて,XML の処理が面倒くさいとか思っていたら,
XML_Serializer を発見した.
実際は,XML_Serializer に含まれている XML_Unserializer を使う.
- インストール
# pear install http://pear.php.net/get/XML_Serializer-0.16.0.tgz
- 使い方
require_once 'XML/Unserializer.php';
$xml = <<<XML
<ItemAttributes>
<Creator Role="著">宮川 達彦</Creator>
<Creator Role="著">伊藤 直也</Creator>
<ListPrice>
<Amount>3045</Amount>
<CurrencyCode>JPY</CurrencyCode>
</ListPrice>
<Publisher>オライリー・ジャパン</Publisher>
<Title>Blog Hacks ―プロが教えるテクニック&ツール100選</Title>
</ItemAttributes>
XML;
$Unserializer =& new XML_Unserializer();
$Unserializer->setOption('parseAttributes', TRUE);
$status = $Unserializer->unserialize($xml);
if (PEAR::isError($status)) {
die($status->getMessage());
}
print_r($Unserializer->getUnserializedData());
- 出力
Array
(
[Creator] => Array
(
[0] => Array
(
[Role] => 著
[_content] => 宮川 達彦
)
[1] => Array
(
[Role] => 著
[_content] => 伊藤 直也
)
)
[ListPrice] => Array
(
[Amount] => 3045
[CurrencyCode] => JPY
)
[Publisher] => オライリー・ジャパン
[Title] => Blog Hacks ―プロが教えるテクニック&ツール100選
)
Amazon Web Service から帰ってきた XML の一部を食わせてみると,見事に配列に入る.
これは楽チン!
$Unserializer->setOption('parseAttributes', TRUE);
このオプションは,属性もパーズするためのもの.