PHP で、XML データに属性と値を追加する方法

以下のような本に関する XML データがあったとして、

<book>
    <title>初めての AJAX</title>
    <author>AJAX 編集部</author>
    <publisher>AJAX 社</publisher>
</book>
<book>
    <title>初めての Perl</title>
    <author>Perl 編集部</author>
    <publisher>Perl 出版</publisher>
</book>
<book>
    <title>初めての PHP</title>
    <author>PHP 編集部</author>
    <publisher>PHP 工房</publisher>
</book>

~ タグに、リリース日を表す <release&gt~</release&gt タグを追加するには、<strong>SimpleXMLElement->addChild 関数を使う(SimpleXMLElement のところは、simplexml_load_string で取得した値(オブジェクト)である)。

以下のようにする。

<?php $xmlstr = your_own_get_XML_string_function(); $xml = simplexml_load_string($xmlstr); foreach ($xml->books->book as $book) { $today = date('Y/m/d', time()); $book->addChild('release', $today); } $xmlstr = $xml->asXML(); ?>

結果はこんな感じになっている(はず)。

<book>
    <title>初めての AJAX</title>
    <author>AJAX 編集部</author>
    <publisher>AJAX 社</publisher>
    <relase>2007/02/12</release>
</book>
<book>
    <title>初めての Perl</title>
    <author>Perl 編集部</author>
    <publisher>Perl 出版</publisher>
    <relase>2007/02/12</release>
</book>
<book>
    <title>初めての PHP</title>
    <author>PHP 編集部</author>
    <publisher>PHP 工房</publisher>
    <relase>2007/02/12</release>
</book>