Here is a helper class to convert a PHP array to XMLYou would call it doing the following:<?php$xml = new Xml();$xml-> generateXmlFromArray($array, 'entities', 'entity');?><?phpclass Xml{ public function getXmlFromArray($value, \SimpleXMLElement &$xmlElement, $entity, $starting = null) { $handleValue = function($value){ if(is_string($value)){ $value = htmlspecialchars($value); } return $value; }; $addChild = function($name, $value, &$subNode = null)use(&$xmlElement, $handleValue, $entity){ if(is_array($value)){ if(!$subNode instanceof \SimpleXMLElement){ $currentKey = key($value); $initialValue = null; if(is_numeric($currentKey)){ if(!is_array($value[$currentKey])){ $initialValue = $value[$currentKey]; unset($value[$currentKey]); } } $subNode = $xmlElement->addChild($name, $initialValue); } $this->getXmlFromArray($handleValue($value), $subNode, $name); } else { $xmlElement->addChild($name, $handleValue($value)); } }; if(is_array($value)) { if(is_numeric(key($value))){ $setSubNodePrimitiveValue = function($value)use(&$xmlElement, $entity, $handleValue){ $value = $handleValue($value); $children = $xmlElement->children(); $children[] = $value; }; foreach ($value as $item) { if(!is_array($item)){ $setSubNodePrimitiveValue($item); } else { if($starting === true){ $addChild($entity, $item); } else { $addChild($entity, $item, $xmlElement); } } } } else { foreach ($value as $subEntity => $subEntityItem) { $addChild($subEntity, $subEntityItem); } } } else { $xmlElement->addChild($entity, $handleValue($value)); } } public function generateXmlFromArray(array $array, string $openingTag, string $entity, $nameSpace = '', $isPrefixed = false) { $xmlString = '<'.$openingTag.'></'.$openingTag.'>'; $xml = new \SimpleXMLElement($xmlString, LIBXML_NOERROR, false, $nameSpace, $isPrefixed); $this->getXmlFromArray($array, $xml, $entity, true); return $xml; } public function validateXml(string $xml) { $dom = new \DOMDocument(); $dom->loadXML($xml); return $dom->validate(); } public function loadXmlPathAsArray(string $xmlPath) { $xml = simplexml_load_file($xmlPath); $array = json_decode(json_encode($xml), TRUE); return (array)$array; } public function loadXmlStringAsArray(string $xmlString) { $array = (array) @simplexml_load_string($xmlString); if(!$array){ $array = (array) @json_decode($xmlString, true); } else{ $array = (array)@json_decode(json_encode($array), true); } return $array; } public function loadXmlString(string $xmlString) { return @simplexml_load_string($xmlString); }}?>