2008-10-24 11:31:16

ようやく続きです。
間違った情報を書いてはまずいという思いからなかなか更新できませんでしたが、間違っていてもとりあえず恥をさらしてみようと思い直しました。
間違えてはじめて気づくこともあると思いますし。。。なので間違いは遠慮なく突っ込んでください。
前回作ったファイルからちょっと体裁を整えます(え
<?php
//DomDocumentを呼び出す
$dom = new DomDocument('1.0','UTF-8');
//要素ノード[document]を追加
$document = $dom->appendChild($dom->createElement('document'));
//新しい要素をdocument要素の子要素として挿入する
$posts = $document->appendChild($dom->createElement('posts'));
//新しい要素をposts要素の子要素として挿入する
$posts->appendChild($dom->createElement('subject','タイトルです。'));
$posts->appendChild($dom->createElement('text','テキストです。'));
//字下げや空白を考慮してきれいに整形した出力を行う
$dom->formatOutput = true;
//同階層にtext.xmlとして保存
$dom->save('test.xml');
//出力(なくても可)
echo $dom->saveXML();
?>前回のようにこのファイルにアクセスするとxmlファイルは以下のようになったと思います。
<?xml version="1.0" encoding="UTF-8"?>
<document>
<posts>
<subject>タイトルです。</subject>
<text>テキストです。</text>
</posts>
</document>
次にこのxmlファイルに要素を追加するphpを書いてみます。
新規でadd.php(名前は自由でかまいません)といったようなファイルを作り、以下のようにします。
<?php
//DomDocumentを呼び出す
$dom = new DomDocument('1.0','UTF-8');
//xmlをloadする前にこれを呼ばないとうまくインデントされない
$dom->preserveWhiteSpace = false;
//保存済みのxmlを読み込む
$dom->load('test.xml');
//字下げや空白を考慮してきれいに整形した出力を行う
$dom->formatOutput = true;
//読み込んだxmlのルート要素を$rootとする
$root = $dom->documentElement;
//新しい要素をルート要素の子要素のとして新規挿入する
$posts = $root->appendChild(new domElement("posts"));
//新しい要素をposts要素の子要素として新規挿入する
$posts->appendChild(new domElement("subject", "タイトル無限増殖"));
$posts->appendChild(new domElement("text", "テキスト無限増殖"));
//xmlを保存する
$dom->save('test.xml');
//出力(なくても可)
echo $dom->saveXML();
?>
アップロード先はxmlと同じ階層にしてください。
で、このファイルにアクセスすると、なにやらリロードするたびに要素が増えていくのがわかると思います。(やりすぎ注意)
これでなんとなく先が見えてきました。
まだまだ、ブログになるには程遠いですが順次更新していければと思います。
コメント投稿