Bit3\FakerCli\Command\GenerateCommand::generateXml PHP Method

generateXml() protected method

Generate a xml element from the input data.
protected generateXml ( DOMDocument $doc, mixed $data ) : DOMElement
$doc DOMDocument
$data mixed
return DOMElement
    protected function generateXml(\DOMDocument $doc, $data)
    {
        if (is_array($data) && range(0, count($data) - 1) == array_keys($data)) {
            // $data is a regular indexed array
            $array = $doc->createElement('array');
            foreach ($data as $value) {
                $entry = $doc->createElement('item');
                $entry->appendChild($this->generateXml($doc, $value));
                $array->appendChild($entry);
            }
            return $array;
        } else {
            if (is_array($data) || is_object($data)) {
                // $data is an associative array or object
                $map = $doc->createElement('map');
                foreach ($data as $key => $value) {
                    $entry = $doc->createElement('item');
                    $entry->setAttribute('key', $key);
                    $entry->appendChild($this->generateXml($doc, $value));
                    $map->appendChild($entry);
                }
                return $map;
            } else {
                // $data is a primitive type
                return $doc->createTextNode($data);
            }
        }
    }