webForumDet fria alternativet

Lägga till data i XML-dokuemnt

PHP

1 svar · 433 visningar · startad av lilja

Medlem sedan juli 20041 183 inlägg
Frågan#1

Jag har försökt mig på att läsa in ett XML-dokument med SimpleXML vilket fungerar bra. Men sen förstår jag inte hur jag ska kunna lägga till nya objekt i filen och uppdatera filen. Skriva över den gamla filen går lika bra.

Ska man använda DOM eller nåt liknande? Jag har försökt förstå en del exempel och det jag fastnar på är ofta hur man skall spara allt till en fil. Jag är också osäker på om jag lägger till data på korrekt sätt för att enkelt kunna spara det i slutändan.

Jag hade tänkt mig skapa en gästbok som sparar nya poster i ett XML-dokument mestadels för övnings-skull. Att göra något liknande med MySQL är jag inte intresserad av då jag redan vet hur det fungerar...

Medlem sedan juli 20041 183 inlägg
#2

Ok, jag tror jag är på rätt väg snart men jag får fel på raden där jag vill skapa ett nytt objekt vid namn <comment> inuti <comments> men får följande felmeddelande:

Call to a member function appendChild() on a non-object

Om jag försöker öppna med domxml_open_file får jag följande felmeddelande:

Call to undefined function domxml_open_file()

Hur ska jag göra? Här är min kod:

// Get XML-data
$dom = new DOMDocument();

if (!$dom = domxml_open_file("guestbook.xml")) {
	echo "Error while parsing the document\n";
	exit;
}
//$dom->load('guestbook.xml'); // old solution

// Add <comment> element to <comments>
$comments = $dom->comments;

// Add <comment> element to <comments>
$comment = $comments->appendChild($dom->createElement('comment'));

// Add <name> element to <comment>
$name = $comment->appendChild($dom->createElement('name'));

// Add <name> text node to <name>
$name = $name->appendChild($dom->createTextNode('Christoffer Lilja'));

//generate xml 
$dom->formatOutput = true; 	// set the formatOutput attribute of domDocument to true 

$dom->save('guestbook.xml'); 	// save as file
260 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)