XML updaten

balufreak

balufreak

Aktives Mitglied
Thread Starter
Dabei seit
12.10.2003
Beiträge
1.563
Reaktionspunkte
28
Hallo leute!

Ich möchte gerne für mein Newssystem eine XML datei updaten. Ich habe bis jetzt mal folgendes:
PHP:
 $filename= 'news.xml';
$edit = 'text'; //Welcher abschnitt soll geändert werden?
	$edit_content = 'Hier habe ich jetzt die News geaendert'; // Was soll jetzt da neu stehen?

	$doc = DOMDocument::load($filename); //Welches XML-File soll geladen werden?

	switch($edit)
	{
		case 'text':
		$newtag = $doc->createElement('text');
		$newtag_content = $doc->createTextNode($edit_content);
		$newtag->appendChild($newtag_content);
		break;
	default:
		break;
	}

	$xp = new domxpath($doc);
	$titles = $xp->query('news[id="1"]');
	foreach($titles as $node)
	{
		foreach($node->childNodes as $cnode)
		{
			if($cnode->nodeType == 1)
			{
				if($cnode->nodeName == $edit)
				{
					$cnode->parentNode->replaceChild($newtag, $cnode);
				}
			}
		}	
	}
	echo '<pre>'.$doc->saveXML($filename).'</pre>';

Nun bekomme ich jetzt immer folgenden fehler:
Code:
Warning: saveXML() expects parameter 1 to be DOMNode, string given in M:\xampplite\htdocs\silas\xml\index.php on line 82

Wenn ich
PHP:
echo '<pre>'.$doc->saveXML().'</pre>';
mache,
zeigt er mir das geänderte an. Aber ich möchte das gerne im file auch speichern.
 
Nimm $doc->save($filename);

SaveXML gibt nur einen String zurück, und nimmt entweder $doc oder den übergebenen Node als Parameter. Keinen Dateinamen- den nimmt nur save();
 
Zurück
Oben Unten