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 ―プロが教えるテクニック&amp;ツール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);


  このオプションは,属性もパーズするためのもの.