static function generate_xml_element($dom, $data) { if (empty($data['name'])) { return false; } // Create the element $element_value = !empty($data['value']) ? $data['value'] : null; $element = $dom->createElement($data['name'], $element_value); // Add any attributes if (!empty($data['attributes']) && is_array($data['attributes'])) { foreach ($data['attributes'] as $attribute_key => $attribute_value) { $element->setAttribute($attribute_key, $attribute_value); } } // Any other items in the data array should be child elements foreach ($data as $data_key => $child_data) { if (!is_numeric($data_key)) { continue; } $child = Request::generate_xml_element($dom, $child_data); if ($child) { $element->appendChild($child); } } return $element; }