private function RESTServerViewBuiltIn::xml_recurse in Services 6.3
1 call to RESTServerViewBuiltIn::xml_recurse()
- RESTServerViewBuiltIn::render_xml in servers/
rest_server/ includes/ rest_server.views.inc
File
- servers/
rest_server/ includes/ rest_server.views.inc, line 78 - Provide formatter class for all standard response formats.
Class
Code
private function xml_recurse(&$doc, &$parent, $data) {
if (is_object($data)) {
$data = get_object_vars($data);
}
if (is_array($data)) {
$assoc = FALSE || empty($data);
foreach ($data as $key => $value) {
if (is_numeric($key)) {
$key = 'item';
}
else {
$assoc = TRUE;
$key = preg_replace('/[^A-Za-z0-9_]/', '_', $key);
$key = preg_replace('/^([0-9]+)/', '_$1', $key);
}
$element = $doc
->createElement($key);
$parent
->appendChild($element);
$this
->xml_recurse($doc, $element, $value);
}
if (!$assoc) {
$parent
->setAttribute('is_array', 'true');
}
}
elseif ($data !== NULL) {
$parent
->appendChild($doc
->createTextNode($data));
}
}