私の XML は次のように始まります。
<user>
<entry>
<date>December 8, 2012, 6:27 am</date>
<height>73</height>
<weight>201</weight>
</entry>
</user>
このようになるように「エントリ」を追加したい
<user>
<entry>
<date>December 8, 2012, 6:27 am</date>
<height>73</height>
<weight>201</weight>
</entry>
<entry>
<date>December 9, 2012, 6:27 am</date>
<height>73</height>
<weight>200</weight>
</entry>
</user>
私が使用しているコードは、すべてを最初の<entry>...</entry>
タグで囲みます。これが私のPHPコードです。
$file = 'users/'.$uID.'data.xml';
$fp = fopen($file, "rb") or die("cannot open file");
$str = fread($fp, filesize($file));
$xml = new DOMDocument();
$xml->formatOutput = true;
$xml->preserveWhiteSpace = false;
$xml->loadXML($str) or die("Error");
// original
echo "<xmp>OLD:\n". $xml->saveXML() ."</xmp>";
// get document element
$root = $xml->documentElement;
$fnode = $root->firstChild;
//add a node
$ori = $fnode->childNodes->item(3);
$today = date("F j, Y, g:i a");
$ydate = $xml->createElement("date");
$ydateText = $xml->createTextNode($today);
$ydate->appendChild($ydateText);
$height = $xml->createElement("height");
$heightText = $xml->createTextNode($_POST['height']);
$height->appendChild($heightText);
$weight = $xml->createElement("weight");
$weightText = $xml->createTextNode($_POST['weight']);
$weight->appendChild($weightText);
$book = $xml->createElement("entry");
$book->appendChild($ydate);
$book->appendChild($height);
$book->appendChild($weight);
$fnode->insertBefore($book,$ori);
$xml->save('users/'.$uID.'data.xml') or die("Error");
エントリが正しい場所に配置されるようにコードを調整するにはどうすればよいですか? ありがとうございました!