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
  
  - RESTServerViewBuiltIn 
 
  
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));
  }
}