Is there an xml_encode() like json_encode() in PHP? Is there an xml_encode() like json_encode() in PHP? xml xml

Is there an xml_encode() like json_encode() in PHP?


You can define your own xml_encode() function such as this the one from http://darklaunch.com/2009/05/23/php-xml-encode-using-domdocument-convert-array-to-xml-json-encode

function xml_encode($mixed, $domElement=null, $DOMDocument=null) {    if (is_null($DOMDocument)) {        $DOMDocument =new DOMDocument;        $DOMDocument->formatOutput = true;        xml_encode($mixed, $DOMDocument, $DOMDocument);        echo $DOMDocument->saveXML();    }    else {        // To cope with embedded objects         if (is_object($mixed)) {          $mixed = get_object_vars($mixed);        }        if (is_array($mixed)) {            foreach ($mixed as $index => $mixedElement) {                if (is_int($index)) {                    if ($index === 0) {                        $node = $domElement;                    }                    else {                        $node = $DOMDocument->createElement($domElement->tagName);                        $domElement->parentNode->appendChild($node);                    }                }                else {                    $plural = $DOMDocument->createElement($index);                    $domElement->appendChild($plural);                    $node = $plural;                    if (!(rtrim($index, 's') === $index)) {                        $singular = $DOMDocument->createElement(rtrim($index, 's'));                        $plural->appendChild($singular);                        $node = $singular;                    }                }                xml_encode($mixedElement, $node, $DOMDocument);            }        }        else {            $mixed = is_bool($mixed) ? ($mixed ? 'true' : 'false') : $mixed;            $domElement->appendChild($DOMDocument->createTextNode($mixed));        }    }}


JSON can express php arrays, integers, strings, etc. natively. XML has no such concepts - just elements, attributes, and text. If you want to transfer an object verbatim, use JSON. If you want to implement a complex API, use XML, for example the php DOM interface.


You could use xmlrpc_encode.

 xmlrpc_encode ($your_array);

Be careful because this function is EXPERIMENTAL.

Reference: http://php.net/manual/en/function.xmlrpc-encode.php