public function HttpClientXMLFormatter::serialize in Http Client 6.2
Same name and namespace in other branches
- 7.2 includes/formatter/HttpClientXMLFormatter.inc \HttpClientXMLFormatter::serialize()
Serializes arbitrary data to the implemented format. Directly stolen from http_server by Hugo Wetterberg
Parameters
mixed $data: The data that should be serialized.
Return value
string The serialized data as a string.
Overrides HttpClientFormatter::serialize
File
- includes/
HttpClientXMLFormatter.inc, line 39
Class
- HttpClientXMLFormatter
- Class for handling xml-responses. Returns a SimpleXML object
Code
public function serialize($data) {
$doc = new DOMDocument('1.0', 'utf-8');
$root_tag = $this->default_root;
// Normalize any objects into an array.
if (is_object($data)) {
$data = get_object_vars($data);
}
// Check if we should adapt the name of the root element.
if ($this->adaptive_root && is_array($data) && count($data) == 1 && !is_numeric(key($data))) {
$root_tag = $this
->sanitizeNodeName(key($data));
$data = current($data);
}
$root = $doc
->createElement($root_tag);
$doc
->appendChild($root);
$this
->xml_recurse($doc, $root, $data);
return $doc
->saveXML();
}