Сохранить массив как xml

array( name => text, surname => text, country => text, date => text ) 

1) Как я могу сохранить этот массив в файл как XML-файл?

2) Как прочитать этот файл, затем как массив?

Solutions Collecting From Web of "Сохранить массив как xml"

 // save $doc = new DOMDocument('1.0'); $doc->formatOutput = true; $root = $doc->createElement('root'); $root = $doc->appendChild($root); foreach($arr as $key=>$value) { $em = $doc->createElement($key); $text = $doc->createTextNode($value); $em->appendChild($text); $root->appendChild($em); } $doc->save('file.xml'); // load $arr = array(); $doc = new DOMDocument(); $doc->load('file.xml'); $root = $doc->getElementsByTagName('root')->items[0]; foreach($root->childNodes as $item) { $arr[$item->nodeName] = $item->nodeValue; } 

Использование SimpleXML

для # 1 (как в разделе Как преобразовать массив в SimpleXML )

 <?php $xml = new SimpleXMLElement('<root/>'); array_walk_recursive($test_array, array ($xml, 'addChild')); print $xml->asXML("file.xml"); 

за # 2

 $xml_data_as_object = simplexml_load_file("file.xml") 

возвращает представление объекта xml-данных.

преобразуйте объект в массив с помощью:

 $xml_data_as_array = array(); foreach ($xml_data->root as $children) { $xml_data_as_array[] = array( "name" => $children->name, "surname" => $children->surname, "country" => $children->country, "date" => $children->date ); } 

Взгляните на модуль Pear XML :: Serializer – который также включает XML :: Unserializer.

http://pear.php.net/package/XML_Serializer/

http://articles.sitepoint.com/article/xml-php-pear-xml_serializer