2015-03-03 117 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); 

那是真的。