Как добавить xml-данные в xml-файл без перезаписи существующих данных с помощью php?

Привет, ребята, я немного новичок в php и xml, поэтому PLS несут меня.

Я хочу, как я собираюсь добавить XML-данные в xml-файл, не перезаписывая существующие данные uisng PHP.

У меня есть коды:

writexml.php

 <?php $employees = array(); $employees [] = array( 'name' => 'Tom', 'age' => '34', 'salary' => "$10000" ); $employees [] = array( 'name' => 'Ryan', 'age' => '20', 'salary' => "$2000" ); $employees [] = array( 'name' => 'Dave', 'age' => '20', 'salary' => "$2000" ); $doc = new DOMDocument(); $doc->formatOutput = true; $r = $doc->createElement( "employees" ); $doc->appendChild( $r ); foreach( $employees as $employee ) { $b = $doc->createElement( "employee" ); $name = $doc->createElement( "name" ); $name->appendChild( $doc->createTextNode( $employee['name'] ) ); $b->appendChild( $name ); $age = $doc->createElement( "age" ); $age->appendChild( $doc->createTextNode( $employee['age'] ) ); $b->appendChild( $age ); $salary = $doc->createElement( "salary" ); $salary->appendChild( $doc->createTextNode( $employee['salary'] ) ); $b->appendChild( $salary ); $r->appendChild( $b ); } echo $doc->saveXML(); $doc->save("employees.xml") ?> 

Что происходит, когда я запускаю этот код, он удаляет все предыдущие данные. Помощь Pls.

Вам нужно будет открыть существующий документ, чтобы добавить в него информацию, последнее сохранение просто перезапишет существующий файл.

 $doc = new DomDocument(); $doc->loadXML(file_get_contents('employees.xml')); foreach($doc->getElementsByTagName('employees') as $node) { // your current xml logic here } 

Обновление для hafedh

 $doc = new DomDocument(); $doc->formatOutput = true; if($xml = file_get_contents('employees.xml')) $doc->loadXML($xml); $nodelist = $doc->getElementsByTagName('employees'); if($nodelist->length === 0) { $nodelist = $doc->createElement("employees"); $doc->appendChild($nodelist); $nodelist = $doc->getElementsByTagName('employees'); } foreach($nodelist as $key => $node) { // Employee Container $element = $doc->createElement("employee"); $employee = $node->appendChild($element); // Name Element $element = $doc->createElement("name"); $name = $employee->appendChild($element); $element = $doc->createTextNode('CCC'); $name->appendChild($element); // Age Element $element = $doc->createElement("age"); $age = $employee->appendChild($element); $element = $doc->createTextNode('333'); $age->appendChild($element); } echo '<pre>' . htmlentities($doc->saveXML()); 

Содержимое файла xml

 <employees><employee><name>AAA</name><age>111</age></employee><employee><name>BBB</name><age>222</age></employee></employees>