2015-03-03 78 views
0

我正在写一种PHP中的小CMS。一切运作良好,但我从来没有使用过XML,通常我使用SQL DB或CSV。现在我必须将一些元素附加到XML表单中。我有一个完全覆盖文件的函数。我想追加数据。如何在php中追加孩子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"); 
    } 
} 

这是一个explicative 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读取数据。 我可以使用“读”函数,因此我可以读取内容,一次元素(使用foreach)并将其插入要写入的元素的队列中($ b) 。它可以工作,但我对此并不满意,我想简单地追加,或者至少在一段时间内阅读文件的全部内容。我试着在这里和那里复制一些片段,但是我没有找到我完全理解的功能,而且我需要理解。

希望我是具体的, 对不起,英语不好。

+0

对不起,解决.. – user3179096 2015-03-03 10:20:29

回答

-1

PHP在SimpleXML下有一个名为addChild()的函数;

它的工作是这样

$d = new SimpleXMLElement("node"); 
$add = $d->addChild("evento"); 
$add->addChild("titolo" , $titolo); 
$add->addChild("data" , $data); 
$add->addChild("desc" , $desc); 

那是真的。