$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();
| << 前へ |