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

以下のような本に関する XML データがあったとして、
<books>
    <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>
</book>
~ タグに、リリース日を表す 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();

?>
結果はこんな感じになっている(はず)。
<books>
    <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>
</book>
トラックバック URL: https://perltips.twinkle.cc/trackback/172
Posted on 2007-02-11 by yas |