This demonstration script will illustrate the differences, including readability and the ratios of propellant to payload that may be important if you’re sending long strings.
<?php error_reporting(E_ALL); echo "<pre>"; // COMPARE XML AND JSON STRINGS // CREATE THE XML STRING $xml = <<<XML <?xml version="1.0" ?> <thing> <person> <name>Ray</name> <email>barantopal@barantopal.com</email> </person> <person> <name>Baran</name> <email/> </person> </thing> XML; // MAKE AN OBJECT FROM THE XML $obj = SimpleXML_Load_String($xml); // MAKE JSON FROM THE OBJECT $jso = json_encode($obj); // MAKE A PAYLOAD-ONLY STRING $pay = trim(strip_tags($xml)); // SHOW SOME SIZE-COMPARATIVE STATISTICS $xml_len = strlen($xml); $jso_len = strlen($jso); $pay_len = strlen($pay); echo PHP_EOL . "THE PAYLOAD IS $pay_len BYTES"; echo PHP_EOL . $pay; echo PHP_EOL; echo PHP_EOL . "THE JSON IS $jso_len BYTES"; echo PHP_EOL . $jso; echo PHP_EOL; echo PHP_EOL . "THE XML IS $xml_len BYTES"; echo PHP_EOL . htmlentities($xml); echo PHP_EOL;