$xml->data[0]->name = "値";これで、最初の(つまりゼロ番目の)<data>にある<name>の値が新しいものに変更されます。もし、nameというノードがなければ新たに追加します。(このあとにaddChildというメソッドを説明しますが、実をいえばこんな具合にノードの名前を指定して値を設定すれば、addChildを使わなくてものーどをついかできちゃったりします)
ノード->addChild( 名前 , 値 );第1引数にノードの名前を、第2引数に設定される値をそれぞれ用意します。また第3引数に名前空間を指定することで、「○○というところにノードを追加する」というように追加する場所を指定することもできます。まぁ、とりあえずは第1、2引数さえわかっていればノードの追加は簡単にできるようになるでしょう。
$xml->data[0]->addChild('maker', 'microsoft');
unset($xml->data[o]);
ノード->addAttribute( 名前 , 値 );こんな具合ですね。とても簡単なのですが、ではその他の値の更新や削除は?というと、実は専用のメソッドは用意されていません。「attributes」というメソッドで、ノードに用意されている全属性をSimpleXMLElementにまとめて取り出すことはできるのですが、既にある属性を削除するなどの仕組みはSimpleXMLにはないようです。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
<?php $arr = array('one','two','three'); $xml = new SimpleXMLElement("data.xml",0,true); for($i = 0; $i < count($arr);$i++) { $xml->data[$i]->version = $arr[$i]; unset($xml->data[$i]->price); $newdata = $xml->addChild("otherdata",""); $newdata->addAttribute("number",$i + 1); $newdata->addChild("name", $arr[$i]); } header('content-type:text/xml;charset=utf-8'); echo $xml->asXML();
<< 前へ |