PHP は私の世界ではないので、xml ファイルを更新するには助けが必要です。DOM を使用するのは初めてで、要素を置き換えないようです。
ここに私のXMLがあります:
<?xml version="1.0" encoding="utf-8"?>
<feedback>
<feed id="0">
<title>some title</title>
<desc><![CDATA[some text]]></desc>
</feed>
<feed id="1">
<title>some title</title>
<desc><![CDATA[some text]]></desc>
</feed>
<feed id="2">
<title>some title</title>
<desc><![CDATA[some text]]></desc>
</feed>
</feedback>
そしてPHPコード:
<?php
if ($_POST['agg']) {
$selid = $_POST['selectedfeed'];
$newtitolo = $_POST['title'];
$newdesc = nl2br($_POST['feed']);
$file = "feedback.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");
$root = $xml->documentElement;
$oldfeed = $root->getElementsByTagName("feed")->item($selid);
$title = $xml->createElement("title");
$titleText = $xml->createTextNode($newtitle);
$title->appendChild($titleText);
$desc = $xml->createElement("desc");
$descText = $xml->createCDATAsection($newdesc);
$desc->appendChild($descText);
$feed = $xml->createElement("feed");
$feed->appendChild($title);
$feed->appendChild($desc);
$root->replaceChild($feed,$oldfeed);
$xml->saveXML("feedback.xml");
}
?>
上記のコードでは、特定の ID を持つ「feed」ノードを取得し、フィードのコンテンツを新しく作成された要素「title」と「desc」(cdata) に置き換える必要があります。
これどうやってするの?