我正在用PHP编写一种小型CMS。一切都运作良好,但我从未使用过XML,通常我使用SQL DB或CSV。现在我必须将一些元素附加到XML表。我有一个完全覆盖文件的功能。我想追加数据。
这是“写”的功能
function scrivi() {
if ( isset($_POST["titolo"])) {
$doc = new DOMDocument();
$doc->formatOutput = true;
$r = $doc->createElement( "eventi" );
$doc->appendChild( $r );
$b = $doc->createElement( "evento" );
$titolo = $doc->createElement( "titolo" );
$titolo->appendChild( $doc->createTextNode( $_POST['titolo'] ) );
$b->appendChild( $titolo );
$data = $doc->createElement( "data" );
$data->appendChild( $doc->createTextNode( $_POST['data'] ) );
$b->appendChild( $data );
$desc = $doc->createElement( "desc" );
$desc->appendChild( $doc->createTextNode( $_POST['desc'] ) );
$b->appendChild( $desc );
$r->appendChild( $b );
$doc->save("eventi.xml");
}
}
这是一个解释性的XML
<?xml version="1.0"?>
<eventi>
<evento>
<titolo>Festa</titolo>
<data>02/03/1993</data>
<desc>Centro Sociale Asilo Politico presenta 99 posse</desc>
</evento>
<evento>
<titolo>Festona</titolo>
<data>15/08/1996</data>
<desc>Falò alla baia: solite facce, solita feccia</desc>
</evento>
</eventi>
我还有一个显然可以从XML读取数据的函数。 我可以使用“read”函数,从“write”内部,所以我可以读取内容,一次一个元素(使用foreach)并将其插入要写入的元素队列($ b)。它有效,但我对此并不满意,我想简单地追加,或者至少在一段时间内阅读文件的全部内容。我试着在这里和那里复制一些片段,但我找不到一个我完全理解的功能,而且我需要理解。
希望我具体, 抱歉英文不好。
答案 0 :(得分:-1)
PHP在SimpleXML下有一个名为addChild();
的函数它会像这样工作
$d = new SimpleXMLElement("node");
$add = $d->addChild("evento");
$add->addChild("titolo" , $titolo);
$add->addChild("data" , $data);
$add->addChild("desc" , $desc);
确实如此。