Как добавить в XML-файл с PHP, желательно с SimpleXML

У меня есть XML-файл, который выглядит так:

<?xml version="1.0" encoding="utf-8"?> <data> <config> </config> <galleries> // We have loads of these <gallery> <gallery> <name>Name_Here</name> <filepath>filepath/file.txt</filepath> <thumb>filepath/thumb.png</thumb> </gallery> </galleries> </data> 

Я пытался выяснить, как добавить еще одну <галерею> в мой XML-файл выше. Я попытался использовать simplexml, но не смог заставить его работать, поэтому я попробовал этот ответ, а также множество других в stackoverflow. Но просто не могу заставить его работать.
Я могу легко прочитать XML-файл и получить всю необходимую мне информацию. Но мне нужно добавить к ней тег галереи. Код ниже не работает, и когда он это делает, я могу вставить только один элемент, и он вставляет это 3 раза, я не понимаю этого.

  $data = 'xml/config.xml'; // Load document $xml = new DOMDocument; $xml->load( $data ); #load data into the element $xpath = new DOMXPath($xml); $results = $xpath->query('/data/galleries'); $gallery_node = $results->item(0); $name_node = $xml->createElement('name'); $name_text = $xml->createTextNode('nametext'); $name_node = $name_node->appendChild($name_text); $gallery_node->appendChild($name_node); echo $xml->save($data); 

У меня было много неудачных попыток, это должно быть так просто. В основном я хочу добавить галерею с именем файла filepath и большим пальцем в этот же файл (xml / config.php).

Как я уже сказал, я получил его на работу, но его неформатированный и не имеет тега галереи.

Вопрос
Как вставить еще один <gallery> (с дочерними элементами) в указанный выше XML-файл?
Предпочтительно даже использование simpleXML

Solutions Collecting From Web of "Как добавить в XML-файл с PHP, желательно с SimpleXML"

С помощью SimpleXML вы можете использовать метод addChild() .

 $file = 'xml/config.xml'; $xml = simplexml_load_file($file); $galleries = $xml->galleries; $gallery = $galleries->addChild('gallery'); $gallery->addChild('name', 'a gallery'); $gallery->addChild('filepath', 'path/to/gallery'); $gallery->addChild('thumb', 'mythumb.jpg'); $xml->asXML($file); 

Имейте в виду, что SimpleXML не будет «форматировать» XML для вас, однако переход от неформатированного представления SimpleXML к аккуратно отложенному XML не является сложным шагом и здесь рассматривается множество вопросов.